
USE parts;

SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning 
FROM INFORMATION_SCHEMA.TABLES 
WHERE 
        TABLE_SCHEMA = 'parts' 
    AND TABLE_NAME = 'DOG_Role_Permission_Link'
;

CREATE TABLE IF NOT EXISTS parts.DOG_Role_Permission_Link (
      id_link INT NOT NULL AUTO_INCREMENT PRIMARY KEY
    , id_role INT NOT NULL
    , CONSTRAINT FK_DOG_Role_Permission_Link_id_role
		FOREIGN KEY (id_role)
        REFERENCES parts.DOG_Role(id_role)
    , id_permission INT NOT NULL
    , CONSTRAINT FK_DOG_Role_Permission_Link_id_permission
		FOREIGN KEY (id_permission)
        REFERENCES parts.DOG_Permission(id_permission)
    , id_access_level INT NOT NULL
    , CONSTRAINT FK_DOG_Role_Permission_Link_id_access_level
		FOREIGN KEY (id_access_level)
        REFERENCES parts.DOG_Access_Level(id_access_level)
    , active BIT NOT NULL DEFAULT 1
    , created_on DATETIME
    , id_user_created_by INT
    , CONSTRAINT FK_DOG_Role_Permission_Link_id_user_created_by
        FOREIGN KEY (id_user_created_by)
        REFERENCES parts.DOG_User(id_user)
    , id_change_set INT
    , CONSTRAINT FK_DOG_Role_Permission_Link_id_change_set
		FOREIGN KEY (id_change_set)
        REFERENCES parts.DOG_User_Change_Set(id_change_set)
);