5770 lines
154 KiB
SQL
5770 lines
154 KiB
SQL
|
|
CREATE DATABASE IF NOT EXISTS parts;
|
|
|
|
GRANT ALL PRIVILEGES ON parts.* TO 'teddy'@'%';
|
|
FLUSH PRIVILEGES;
|
|
|
|
USE parts;
|
|
|
|
-- Permanent Temp Tables
|
|
DROP TABLE IF EXISTS parts.tmp_DOG_Calc_User;
|
|
-- DROP TABLE IF EXISTS parts.tmp_core_Msg_Error;
|
|
DROP TABLE IF EXISTS parts.tmp_DOG_User;
|
|
DROP TABLE IF EXISTS parts.tmp_DOG_User_Role_Link;
|
|
|
|
|
|
-- Permanent Tables
|
|
DROP TABLE IF EXISTS parts.DOG_Dog_Drive_Link_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Dog_Drive_Link_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Dog_Drive_Link;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Drive_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Drive_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Drive;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Command_Button_Link_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Command_Button_Link_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Command_Button_Link;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Button_Icon_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Button_Icon_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Button_Icon;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Image_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Image_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Image;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Button_Shape_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Button_Shape_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Button_Shape;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Colour_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Colour_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Colour;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Location_Link_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Location_Link_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Location_Link;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Location_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Location_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Location;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Personal_Best_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Personal_Best_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Personal_Best;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Dog_Command_Link_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Dog_Command_Link_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Dog_Command_Link;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Command_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Command_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Command;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Command_Category_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Command_Category_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Command_Category;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Obedience_Level_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Obedience_Level_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Obedience_Level;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Understanding_Level_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Understanding_Level_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Understanding_Level;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Competency_Level_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Competency_Level_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Competency_Level;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Dog_Breed_Link_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Dog_Breed_Link_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Dog_Breed_Link;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Breed_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Breed_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Breed;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Dog_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_Dog_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Dog;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Dog_Change_Set;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Calc_User_Temp;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_User_Role_Link_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_User_Role_Link;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Role_Permission_Link_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Role_Permission_Link;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Role_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Role;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_User_Temp;
|
|
DROP TABLE IF EXISTS parts.DOG_User_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_User;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Permission_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Permission;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Permission_Group_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Permission_Group;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_Access_Level_Audit;
|
|
DROP TABLE IF EXISTS parts.DOG_Access_Level;
|
|
|
|
DROP TABLE IF EXISTS parts.DOG_User_Change_Set;
|
|
|
|
/*
|
|
DROP TABLE IF EXISTS parts.CORE_Split_Key_Value_Pair_Csv_Temp;
|
|
DROP TABLE IF EXISTS parts.CORE_Split_Temp;
|
|
|
|
*/
|
|
DROP TABLE IF EXISTS parts.CORE_File_Type;
|
|
DROP TABLE IF EXISTS parts.CORE_Msg_Error_Type;
|
|
|
|
-- Stored Procedures
|
|
DROP PROCEDURE IF EXISTS parts.p_DOG_test_get_many_dog_command;
|
|
DROP PROCEDURE IF EXISTS parts.p_DOG_test_get_many_command;
|
|
DROP PROCEDURE IF EXISTS parts.p_DOG_get_many_command;
|
|
DROP PROCEDURE IF EXISTS parts.p_DOG_test_save_command;
|
|
DROP PROCEDURE IF EXISTS parts.p_DOG_save_command;
|
|
|
|
DROP PROCEDURE IF EXISTS parts.p_DOG_clear_calc_user;
|
|
DROP PROCEDURE IF EXISTS parts.p_DOG_calc_user;
|
|
|
|
/*
|
|
DROP PROCEDURE IF EXISTS parts.p_core_clear_split_key_value_pair_csv;
|
|
DROP PROCEDURE IF EXISTS parts.p_core_split_key_value_pair_csv;
|
|
DROP PROCEDURE IF EXISTS parts.p_core_clear_split;
|
|
DROP PROCEDURE IF EXISTS parts.p_core_split;
|
|
DROP PROCEDURE IF EXISTS parts.p_clear_split_key_value_pair_csv;
|
|
DROP PROCEDURE IF EXISTS parts.p_split_key_value_pair_csv;
|
|
DROP PROCEDURE IF EXISTS parts.p_clear_split;
|
|
DROP PROCEDURE IF EXISTS parts.p_split;
|
|
|
|
DROP PROCEDURE IF EXISTS parts.p_core_debug_timing_reporting;
|
|
DROP PROCEDURE IF EXISTS parts.p_debug_timing_reporting;
|
|
DROP PROCEDURE IF EXISTS parts.p_core_validate_guid;
|
|
DROP PROCEDURE IF EXISTS parts.p_core_validate_guid_test;
|
|
*/
|
|
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 = 'CORE_Msg_Error_Type'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.CORE_Msg_Error_Type (
|
|
id_type INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, code VARCHAR(100) NOT NULL
|
|
, name VARCHAR(500) NOT NULL
|
|
, description VARCHAR(1000)
|
|
, is_breaking_error BIT NOT NULL
|
|
, background_colour VARCHAR(32) NOT NULL DEFAULT '#111111'
|
|
, text_colour VARCHAR(32) NOT NULL DEFAULT '#110000'
|
|
);
|
|
|
|
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 = 'CORE_File_Type'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.CORE_File_Type (
|
|
id_file_type INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, code VARCHAR(100) NOT NULL
|
|
, name VARCHAR(250) NOT NULL
|
|
, is_image BIT NOT NULL DEFAULT 0
|
|
, active BIT NOT NULL DEFAULT 1
|
|
);
|
|
|
|
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 = 'CORE_Split_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.CORE_Split_Temp (
|
|
guid BINARY(36) NOT NULL
|
|
, display_order INT NOT NULL
|
|
, substring VARCHAR(4000) NOT NULL
|
|
);
|
|
|
|
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 = 'CORE_Split_Key_Value_Pair_Csv_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.CORE_Split_Key_Value_Pair_Csv_Temp (
|
|
guid BINARY(36) NOT NULL
|
|
, id INT NOT NULL
|
|
, key_column VARCHAR(4000) NULL
|
|
, value_column VARCHAR(4000) NULL
|
|
);
|
|
|
|
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_User_Change_Set'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_User_Change_Set (
|
|
id_change_set INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, comment VARCHAR(500)
|
|
, updated_last_on DATETIME
|
|
, id_user_updated_last_by INT
|
|
);
|
|
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_Access_Level'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Access_Level (
|
|
id_access_level INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
, priority INT NOT NULL
|
|
, display_order INT NOT NULL
|
|
, active BIT NOT NULL DEFAULT 1
|
|
);
|
|
|
|
|
|
|
|
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_Permission_Group'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Permission_Group (
|
|
id_group INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
, display_order INT NOT NULL
|
|
, active BIT NOT NULL DEFAULT 1
|
|
);
|
|
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_Permission'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Permission (
|
|
id_permission INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
, id_permission_group INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Permission_id_permission_group
|
|
FOREIGN KEY (id_permission_group)
|
|
REFERENCES parts.DOG_Permission_Group(id_group)
|
|
, id_access_level_required INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Permission_id_access_level_required
|
|
FOREIGN KEY (id_access_level_required)
|
|
REFERENCES parts.DOG_Access_Level(id_access_level)
|
|
, display_order INT NOT NULL
|
|
, active BIT NOT NULL DEFAULT 1
|
|
);
|
|
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_User'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_User (
|
|
id_user INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_user_auth0 VARCHAR(200)
|
|
, firstname VARCHAR(250)
|
|
, surname VARCHAR(250)
|
|
, email VARCHAR(254)
|
|
, is_email_verified BIT NOT NULL DEFAULT 0
|
|
, is_super_user BIT NOT NULL DEFAULT 0
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_User_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_User_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_User_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_User_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_User_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_user INT NOT NULL
|
|
, CONSTRAINT FK_DOG_User_Audit_id_user
|
|
FOREIGN KEY (id_user)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev VARCHAR(500)
|
|
, value_new VARCHAR(500)
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_User_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_User_Change_Set(id_change_set)
|
|
);
|
|
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_User_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_User_Temp (
|
|
id_temp INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_user INT NOT NULL
|
|
, id_user_auth0 VARCHAR(200)
|
|
, firstname VARCHAR(250)
|
|
, surname VARCHAR(250)
|
|
, email VARCHAR(254)
|
|
, is_email_verified BIT
|
|
, is_super_user BIT
|
|
, active BIT
|
|
, guid BINARY(36) NOT NULL
|
|
);
|
|
|
|
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'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Role (
|
|
id_role INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
, display_order INT NOT NULL
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Role_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Role_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_User_Change_Set(id_change_set)
|
|
);
|
|
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_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Role_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_role INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Role_Audit_id_role
|
|
FOREIGN KEY (id_role)
|
|
REFERENCES parts.DOG_Role(id_role)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev VARCHAR(500)
|
|
, value_new VARCHAR(500)
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Role_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_User_Change_Set(id_change_set)
|
|
);
|
|
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)
|
|
);
|
|
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_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Role_Permission_Link_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_link INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Role_Permission_Link_Audit_id_link
|
|
FOREIGN KEY (id_link)
|
|
REFERENCES parts.DOG_Role_Permission_Link(id_link)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev VARCHAR(500)
|
|
, value_new VARCHAR(500)
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Role_Permission_Link_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_User_Change_Set(id_change_set)
|
|
);
|
|
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_User_Role_Link'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_User_Role_Link (
|
|
id_link INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_user INT NOT NULL
|
|
, CONSTRAINT FK_DOG_User_Role_Link_id_user
|
|
FOREIGN KEY (id_user)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_role INT NOT NULL
|
|
, CONSTRAINT FK_DOG_User_Role_Link_id_role
|
|
FOREIGN KEY (id_role)
|
|
REFERENCES parts.DOG_Role(id_role)
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_User_Role_Link_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_User_Role_Link_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_User_Change_Set(id_change_set)
|
|
);
|
|
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_User_Role_Link_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_User_Role_Link_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_link INT NOT NULL
|
|
, CONSTRAINT FK_DOG_User_Role_Link_Audit_id_link
|
|
FOREIGN KEY (id_link)
|
|
REFERENCES parts.DOG_User_Role_Link(id_link)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev VARCHAR(500)
|
|
, value_new VARCHAR(500)
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_User_Role_Link_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_User_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Calc_User_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Calc_User_Temp (
|
|
guid BINARY(36) NOT NULL
|
|
, id_user INT
|
|
, id_permission_required INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Calc_User_Temp_id_permission_required
|
|
FOREIGN KEY (id_permission_required)
|
|
REFERENCES parts.DOG_Permission (id_permission)
|
|
, priority_access_level_required INT NOT NULL
|
|
, is_super_user BIT
|
|
, priority_access_level_user INT
|
|
, has_access BIT
|
|
);
|
|
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_Dog_Change_Set'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Change_Set (
|
|
id_change_set INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, comment VARCHAR(500)
|
|
, updated_last_on DATETIME
|
|
, id_user_updated_last_by INT
|
|
, CONSTRAINT FK_DOG_Role_id_user_updated_last_by
|
|
FOREIGN KEY (id_user_updated_last_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
);
|
|
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_Dog'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Dog (
|
|
id_dog INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, name VARCHAR(250) NOT NULL
|
|
, appearance VARCHAR(1000)
|
|
, mass_kg DECIMAL(7, 3)
|
|
, notes TEXT
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Dog_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Dog_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Dog_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_dog INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Audit_id_dog
|
|
FOREIGN KEY (id_dog)
|
|
REFERENCES parts.DOG_Dog(id_dog)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Dog_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_dog INT
|
|
, name VARCHAR(250)
|
|
, appearance VARCHAR(1000)
|
|
, mass_kg DECIMAL(7, 3)
|
|
, notes TEXT
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
|
|
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_Breed'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Breed (
|
|
id_breed INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, code VARCHAR(100) NOT NULL
|
|
, name VARCHAR(250) NOT NULL
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Breed_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Breed_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Breed_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Breed_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_breed INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Breed_Audit_id_breed
|
|
FOREIGN KEY (id_breed)
|
|
REFERENCES parts.DOG_Breed(id_breed)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Breed_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Breed_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Breed_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_breed INT
|
|
, code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
|
|
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_Dog_Breed_Link'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Breed_Link (
|
|
id_link INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_dog INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Breed_Link_id_dog
|
|
FOREIGN KEY (id_dog)
|
|
REFERENCES parts.DOG_Dog(id_dog)
|
|
, id_breed INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Breed_Link_id_breed
|
|
FOREIGN KEY (id_breed)
|
|
REFERENCES parts.DOG_Breed(id_breed)
|
|
, lineage_ratio DECIMAL(5, 4) NOT NULL
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Dog_Breed_Link_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Dog_Breed_Link_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Dog_Breed_Link_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Breed_Link_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_link INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Breed_Link_Audit_id_link
|
|
FOREIGN KEY (id_link)
|
|
REFERENCES parts.DOG_Dog_Breed_Link(id_link)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Breed_Link_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Dog_Breed_Link_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Breed_Link_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_link INT
|
|
, id_dog INT
|
|
, id_breed INT
|
|
, lineage_ratio DECIMAL(5, 4)
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
|
|
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_Understanding_Level'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Understanding_Level (
|
|
id_understanding_level INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, code VARCHAR(100) NOT NULL
|
|
, name VARCHAR(250) NOT NULL
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Understanding_Level_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Understanding_Level_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Understanding_Level_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Understanding_Level_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_understanding_level INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Understanding_Level_Audit_id_understanding_level
|
|
FOREIGN KEY (id_understanding_level)
|
|
REFERENCES parts.DOG_Understanding_Level(id_understanding_level)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Understanding_Level_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Understanding_Level_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Understanding_Level_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_understanding_level INT
|
|
, code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
|
|
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_Obedience_Level'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Obedience_Level (
|
|
id_obedience_level INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, code VARCHAR(100) NOT NULL
|
|
, name VARCHAR(250) NOT NULL
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Obedience_Level_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Obedience_Level_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Obedience_Level_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Obedience_Level_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_obedience_level INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Obedience_Level_Audit_id_obedience_level
|
|
FOREIGN KEY (id_obedience_level)
|
|
REFERENCES parts.DOG_Obedience_Level(id_obedience_level)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Obedience_Level_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Obedience_Level_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Obedience_Level_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_obedience_level INT
|
|
, code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
|
|
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_Command_Category'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Command_Category (
|
|
id_command_category INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, code VARCHAR(100) NOT NULL
|
|
, name VARCHAR(250) NOT NULL
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Command_Category_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Command_Category_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Command_Category_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Command_Category_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_command_category INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Command_Category_Audit_id_command_category
|
|
FOREIGN KEY (id_command_category)
|
|
REFERENCES parts.DOG_Command_Category(id_command_category)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Command_Category_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Command_Category_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Command_Category_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_command_category INT
|
|
, code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
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_Command'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Command (
|
|
id_command INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_command_category INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Command_id_command_category
|
|
FOREIGN KEY (id_command_category)
|
|
REFERENCES parts.DOG_Command_Category(id_command_category)
|
|
, name VARCHAR(250) NOT NULL
|
|
, hand_signal_default_description TEXT
|
|
, can_have_button BIT NOT NULL DEFAULT 0
|
|
, notes TEXT
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Command_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Command_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Command_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Command_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_command INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Command_Audit_id_command
|
|
FOREIGN KEY (id_command)
|
|
REFERENCES parts.DOG_Command(id_command)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Command_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Command_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Command_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_command INT
|
|
, id_command_category INT
|
|
, name VARCHAR(250)
|
|
, hand_signal_default_description TEXT
|
|
, can_have_button BIT
|
|
, notes TEXT
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
|
|
, name_command_category VARCHAR(250)
|
|
);
|
|
|
|
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_Dog_Command_Link'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Command_Link (
|
|
id_link INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_dog INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Command_Link_id_dog
|
|
FOREIGN KEY (id_dog)
|
|
REFERENCES parts.DOG_Dog(id_dog)
|
|
, id_command INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Command_Link_id_command
|
|
FOREIGN KEY (id_command)
|
|
REFERENCES parts.DOG_Command(id_command)
|
|
, id_understanding_level INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Command_Link_id_understanding_level
|
|
FOREIGN KEY (id_understanding_level)
|
|
REFERENCES parts.DOG_Understanding_Level(id_understanding_level)
|
|
, id_obedience_level INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Command_Link_id_obedience_level
|
|
FOREIGN KEY (id_obedience_level)
|
|
REFERENCES parts.DOG_Obedience_Level(id_obedience_level)
|
|
, hand_signal_description TEXT
|
|
, notes TEXT
|
|
-- , has_button BIT NOT NULL DEFAULT 0
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Dog_Command_Link_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Dog_Command_Link_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Dog_Command_Link_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Command_Link_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_link INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Command_Link_Audit_id_link
|
|
FOREIGN KEY (id_link)
|
|
REFERENCES parts.DOG_Dog_Command_Link(id_link)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Command_Link_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Dog_Command_Link_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Command_Link_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_link INT
|
|
, id_dog INT
|
|
, id_command INT
|
|
, id_understanding_level INT
|
|
, id_obedience_level INT
|
|
, hand_signal_description TEXT
|
|
, notes TEXT
|
|
-- , has_button BIT
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
|
|
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_Personal_Best'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Personal_Best (
|
|
id_personal_best INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_dog_command_link INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Personal_Best_id_dog_command_link
|
|
FOREIGN KEY (id_dog_command_link)
|
|
REFERENCES parts.DOG_Dog_Command_Link(id_link)
|
|
, is_achieved_using_button BIT NOT NULL DEFAULT 0
|
|
, situation TEXT NOT NULL
|
|
, duration_seconds INT
|
|
, quantity INT
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Personal_Best_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Personal_Best_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Personal_Best_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Personal_Best_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_personal_best INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Personal_Best_Audit_id_personal_best
|
|
FOREIGN KEY (id_personal_best)
|
|
REFERENCES parts.DOG_Personal_Best(id_personal_best)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Personal_Best_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Personal_Best_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Personal_Best_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_personal_best INT
|
|
, id_dog_command_link INT
|
|
, is_achieved_using_button BIT
|
|
, situation TEXT
|
|
, duration_seconds INT
|
|
, quantity INT
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
|
|
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_Location'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Location (
|
|
id_location INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, code VARCHAR(100) NOT NULL
|
|
, name VARCHAR(250) NOT NULL
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Location_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Location_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Location_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Location_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_location INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Location_Audit_id_location
|
|
FOREIGN KEY (id_location)
|
|
REFERENCES parts.DOG_Location(id_location)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Location_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Location_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Location_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_location INT
|
|
, code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
|
|
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_Location_Link'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Location_Link (
|
|
id_link INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_location_parent INT
|
|
, CONSTRAINT FK_DOG_Location_Link_id_location_parent
|
|
FOREIGN KEY (id_location_parent)
|
|
REFERENCES parts.DOG_Location(id_location)
|
|
, id_location_child INT
|
|
, CONSTRAINT FK_DOG_Location_Link_id_location_child
|
|
FOREIGN KEY (id_location_child)
|
|
REFERENCES parts.DOG_Location(id_location)
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Location_Link_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Location_Link_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Location_Link_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Location_Link_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_link INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Location_Link_Audit_id_link
|
|
FOREIGN KEY (id_link)
|
|
REFERENCES parts.DOG_Location_Link(id_link)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Location_Link_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Location_Link_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Location_Link_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_link INT
|
|
, id_location_parent INT
|
|
, id_location_child INT
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
|
|
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_Colour'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Colour (
|
|
id_colour INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, code VARCHAR(100) NOT NULL
|
|
, name VARCHAR(250) NOT NULL
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Colour_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Colour_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Colour_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Colour_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_colour INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Colour_Audit_id_colour
|
|
FOREIGN KEY (id_colour)
|
|
REFERENCES parts.DOG_Colour(id_colour)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Colour_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Colour_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Colour_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_colour INT
|
|
, code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
|
|
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_Button_Shape'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Button_Shape (
|
|
id_button_shape INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, code VARCHAR(100) NOT NULL
|
|
, name VARCHAR(250) NOT NULL
|
|
, description TEXT
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Button_Shape_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Button_Shape_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Button_Shape_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Button_Shape_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_button_shape INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Button_Shape_Audit_id_button_shape
|
|
FOREIGN KEY (id_button_shape)
|
|
REFERENCES parts.DOG_Button_Shape(id_button_shape)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Button_Shape_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Button_Shape_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Button_Shape_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_button_shape INT
|
|
, code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
, description TEXT
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
|
|
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_Image'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Image (
|
|
id_image INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_file_type INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Image_id_file_type
|
|
FOREIGN KEY (id_file_type)
|
|
REFERENCES parts.CORE_File_Type(id_file_type)
|
|
, id_dog INT
|
|
, CONSTRAINT FK_DOG_Image_id_dog
|
|
FOREIGN KEY (id_dog)
|
|
REFERENCES parts.DOG_Dog(id_dog)
|
|
, path VARCHAR(1024) NOT NULL
|
|
, display_order INT
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Image_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Image_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Image_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Image_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_image INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Image_Audit_id_image
|
|
FOREIGN KEY (id_image)
|
|
REFERENCES parts.DOG_Image(id_image)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Image_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Image_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Image_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_image INT
|
|
, id_file_type INT NOT NULL
|
|
, id_dog INT
|
|
, path VARCHAR(1024) NOT NULL
|
|
, display_order INT
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
|
|
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_Button_Icon'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Button_Icon (
|
|
id_button_icon INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_image INT
|
|
, CONSTRAINT FK_DOG_Button_Icon_id_image
|
|
FOREIGN KEY (id_image)
|
|
REFERENCES parts.DOG_Image(id_image)
|
|
, code VARCHAR(100) NOT NULL
|
|
, name VARCHAR(250) NOT NULL
|
|
, description TEXT
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Button_Icon_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Button_Icon_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Button_Icon_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Button_Icon_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_button_icon INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Button_Icon_Audit_id_button_icon
|
|
FOREIGN KEY (id_button_icon)
|
|
REFERENCES parts.DOG_Button_Icon(id_button_icon)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Button_Icon_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Button_Icon_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Button_Icon_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_button_icon INT
|
|
, id_image INT
|
|
, code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
, description TEXT
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
|
|
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_Command_Button_Link'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Command_Button_Link (
|
|
id_link INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_command INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Command_Button_Link_id_command
|
|
FOREIGN KEY (id_command)
|
|
REFERENCES parts.DOG_Command(id_command)
|
|
, id_button_shape INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Command_Button_Link_id_button_shape
|
|
FOREIGN KEY (id_button_shape)
|
|
REFERENCES parts.DOG_Button_Shape(id_button_shape)
|
|
, id_button_colour INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Command_Button_Link_id_button_colour
|
|
FOREIGN KEY (id_button_colour)
|
|
REFERENCES parts.DOG_Colour(id_colour)
|
|
, id_button_icon INT
|
|
, CONSTRAINT FK_DOG_Command_Button_Link_id_button_icon
|
|
FOREIGN KEY (id_button_icon)
|
|
REFERENCES parts.DOG_Button_Icon(id_button_icon)
|
|
, id_location INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Command_Button_Link_id_location
|
|
FOREIGN KEY (id_location)
|
|
REFERENCES parts.DOG_Location(id_location)
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Command_Button_Link_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Command_Button_Link_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Command_Button_Link_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Command_Button_Link_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_link INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Command_Button_Link_Audit_id_link
|
|
FOREIGN KEY (id_link)
|
|
REFERENCES parts.DOG_Command_Button_Link(id_link)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Command_Button_Link_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Command_Button_Link_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Command_Button_Link_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_link INT
|
|
, id_command INT
|
|
, id_button_shape INT
|
|
, id_button_colour INT
|
|
, id_button_icon INT
|
|
, id_location INT
|
|
, has_button BIT
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
|
|
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_Drive'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Drive (
|
|
id_drive INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, code VARCHAR(100) NOT NULL
|
|
, name VARCHAR(250) NOT NULL
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Drive_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Drive_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Drive_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Drive_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_drive INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Drive_Audit_id_drive
|
|
FOREIGN KEY (id_drive)
|
|
REFERENCES parts.DOG_Drive(id_drive)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Drive_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Drive_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Drive_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_drive INT
|
|
, code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
|
|
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_Dog_Drive_Link'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Drive_Link (
|
|
id_link INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_dog INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Drive_Link_id_dog
|
|
FOREIGN KEY (id_dog)
|
|
REFERENCES parts.DOG_Dog(id_dog)
|
|
, id_drive INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Drive_Link_id_drive
|
|
FOREIGN KEY (id_drive)
|
|
REFERENCES parts.DOG_Drive(id_drive)
|
|
, dominance_ratio DECIMAL(5, 4)
|
|
, active BIT NOT NULL DEFAULT 1
|
|
, created_on DATETIME
|
|
, id_user_created_by INT
|
|
, CONSTRAINT FK_DOG_Dog_Drive_Link_id_user_created_by
|
|
FOREIGN KEY (id_user_created_by)
|
|
REFERENCES parts.DOG_User(id_user)
|
|
, id_change_set INT
|
|
, CONSTRAINT FK_DOG_Dog_Drive_Link_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Dog_Drive_Link_Audit'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Drive_Link_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
, id_link INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Drive_Link_Audit_id_link
|
|
FOREIGN KEY (id_link)
|
|
REFERENCES parts.DOG_Dog_Drive_Link(id_link)
|
|
, name_field VARCHAR(100) NOT NULL
|
|
, value_prev TEXT
|
|
, value_new TEXT
|
|
, id_change_set INT NOT NULL
|
|
, CONSTRAINT FK_DOG_Dog_Drive_Link_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES parts.DOG_Dog_Change_Set(id_change_set)
|
|
);
|
|
|
|
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_Dog_Drive_Link_Temp'
|
|
;
|
|
|
|
CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Drive_Link_Temp (
|
|
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_link INT
|
|
, id_dog INT
|
|
, id_drive INT
|
|
, dominance_ratio DECIMAL(5, 4)
|
|
, active BIT
|
|
, guid BINARY(36)
|
|
);
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_User_Change_Set;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_User_Change_Set
|
|
BEFORE INSERT ON parts.DOG_User_Change_Set
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.updated_last_on <=> NULL THEN
|
|
SET NEW.updated_last_on = NOW();
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_User_Change_Set
|
|
BEFORE UPDATE ON parts.DOG_User_Change_Set
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF NOT EXISTS(SELECT * FROM parts.DOG_User WHERE id_user = NEW.id_user_updated_last_by) THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New Updated-Last-By User ID must be provided.';
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_User;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_User;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_User
|
|
BEFORE INSERT ON parts.DOG_User
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_User
|
|
BEFORE UPDATE ON parts.DOG_User
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_User_Audit (
|
|
id_user,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
-- Changed id_user_auth0
|
|
SELECT NEW.id_user, 'id_user_auth0', OLD.id_user_auth0, NEW.id_user_auth0, NEW.id_change_set
|
|
WHERE NOT (OLD.id_user_auth0 <=> NEW.id_user_auth0)
|
|
UNION
|
|
-- Changed firstname
|
|
SELECT NEW.id_user, 'firstname', OLD.firstname, NEW.firstname, NEW.id_change_set
|
|
WHERE NOT (OLD.firstname <=> NEW.firstname)
|
|
UNION
|
|
-- Changed surname
|
|
SELECT NEW.id_user, 'surname', OLD.surname, NEW.surname, NEW.id_change_set
|
|
WHERE NOT (OLD.surname <=> NEW.surname)
|
|
UNION
|
|
-- Changed email
|
|
SELECT NEW.id_user, 'email', OLD.email, NEW.email, NEW.id_change_set
|
|
WHERE NOT (OLD.email <=> NEW.email)
|
|
UNION
|
|
-- Changed is_email_verified
|
|
SELECT NEW.id_user, 'is_email_verified', CONVERT(CONVERT(OLD.is_email_verified, SIGNED), CHAR), CONVERT(CONVERT(NEW.is_email_verified, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.is_email_verified <=> NEW.is_email_verified)
|
|
UNION
|
|
-- Changed is_super_user
|
|
SELECT NEW.id_user, 'is_super_user', CONVERT(CONVERT(OLD.is_super_user, SIGNED), CHAR), CONVERT(CONVERT(NEW.is_super_user, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.is_super_user <=> NEW.is_super_user)
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_user, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Role;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Role;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Role
|
|
BEFORE INSERT ON parts.DOG_Role
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Role
|
|
BEFORE UPDATE ON parts.DOG_Role
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Role_Audit (
|
|
id_role,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
-- Changed code
|
|
SELECT NEW.id_role, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT OLD.code <=> NEW.code
|
|
UNION
|
|
-- Changed name
|
|
SELECT NEW.id_role, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_role, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
UNION
|
|
-- Changed display_order
|
|
SELECT NEW.id_role, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.display_order <=> NEW.display_order
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Role_Permission_Link;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Role_Permission_Link;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Role_Permission_Link
|
|
BEFORE INSERT ON parts.DOG_Role_Permission_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Role_Permission_Link
|
|
BEFORE UPDATE ON parts.DOG_Role_Permission_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Role_Permission_Link_Audit (
|
|
id_link,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
-- Changed id_role
|
|
SELECT NEW.id_link, 'id_role', CONVERT(OLD.id_role, CHAR), CONVERT(NEW.id_role, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.id_role <=> NEW.id_role
|
|
UNION
|
|
-- Changed id_permission
|
|
SELECT NEW.id_link, 'id_permission', CONVERT(OLD.id_permission, CHAR), CONVERT(NEW.id_permission, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.id_permission <=> NEW.id_permission
|
|
UNION
|
|
-- Changed id_access_level
|
|
SELECT NEW.id_link, 'id_access_level', CONVERT(OLD.id_access_level, CHAR), CONVERT(NEW.id_access_level, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.id_access_level <=> NEW.id_access_level
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_User_Role_Link;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_User_Role_Link;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_User_Role_Link
|
|
BEFORE INSERT ON parts.DOG_User_Role_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_User_Role_Link
|
|
BEFORE UPDATE ON parts.DOG_User_Role_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_User_Role_Link_Audit (
|
|
id_link,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
-- Changed id_user
|
|
SELECT NEW.id_link, 'id_user', CONVERT(OLD.id_user, CHAR), CONVERT(NEW.id_user, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.id_user <=> NEW.id_user
|
|
UNION
|
|
-- Changed id_role
|
|
SELECT NEW.id_link, 'id_role', CONVERT(OLD.id_role, CHAR), CONVERT(NEW.id_role, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.id_role <=> NEW.id_role
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Dog_Change_Set;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Dog_Change_Set
|
|
BEFORE INSERT ON parts.DOG_Dog_Change_Set
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.updated_last_on <=> NULL THEN
|
|
SET NEW.updated_last_on = NOW();
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Dog;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Dog;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Dog
|
|
BEFORE INSERT ON parts.DOG_Dog
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Dog
|
|
BEFORE UPDATE ON parts.DOG_Dog
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Dog_Audit (
|
|
id_dog
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed name
|
|
SELECT NEW.id_dog, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
-- Changed appearance
|
|
SELECT NEW.id_dog, 'appearance', OLD.appearance, NEW.appearance, NEW.id_change_set
|
|
WHERE NOT OLD.appearance <=> NEW.appearance
|
|
UNION
|
|
-- Changed mass_kg
|
|
SELECT NEW.id_dog, 'mass_kg', CONVERT(OLD.mass_kg, CHAR), CONVERT(NEW.mass_kg, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.mass_kg <=> NEW.mass_kg)
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_dog, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Breed;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Breed;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Breed
|
|
BEFORE INSERT ON parts.DOG_Breed
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Breed
|
|
BEFORE UPDATE ON parts.DOG_Breed
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Breed_Audit (
|
|
id_breed
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed code
|
|
SELECT NEW.id_breed, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT OLD.code <=> NEW.code
|
|
UNION
|
|
-- Changed name
|
|
SELECT NEW.id_breed, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_breed, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Dog_Breed_Link;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Dog_Breed_Link;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Dog_Breed_Link
|
|
BEFORE INSERT ON parts.DOG_Dog_Breed_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Dog_Breed_Link
|
|
BEFORE UPDATE ON parts.DOG_Dog_Breed_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Dog_Breed_Link_Audit (
|
|
id_link
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed id_dog
|
|
SELECT NEW.id_link, 'id_dog', CONVERT(OLD.id_dog, CHAR), CONVERT(NEW.id_dog, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_dog <=> NEW.id_dog)
|
|
UNION
|
|
-- Changed id_breed
|
|
SELECT NEW.id_link, 'id_breed', CONVERT(OLD.id_breed, CHAR), CONVERT(NEW.id_breed, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_breed <=> NEW.id_breed)
|
|
UNION
|
|
-- Changed lineage_ratio
|
|
SELECT NEW.id_link, 'lineage_ratio', CONVERT(OLD.lineage_ratio, CHAR), CONVERT(NEW.lineage_ratio, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.lineage_ratio <=> NEW.lineage_ratio)
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Understanding_Level;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Understanding_Level;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Understanding_Level
|
|
BEFORE INSERT ON parts.DOG_Understanding_Level
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Understanding_Level
|
|
BEFORE UPDATE ON parts.DOG_Understanding_Level
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Understanding_Level_Audit (
|
|
id_understanding_level
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed code
|
|
SELECT NEW.id_understanding_level, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT OLD.code <=> NEW.code
|
|
UNION
|
|
-- Changed name
|
|
SELECT NEW.id_understanding_level, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_understanding_level, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Obedience_Level;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Obedience_Level;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Obedience_Level
|
|
BEFORE INSERT ON parts.DOG_Obedience_Level
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Obedience_Level
|
|
BEFORE UPDATE ON parts.DOG_Obedience_Level
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Obedience_Level_Audit (
|
|
id_obedience_level
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed code
|
|
SELECT NEW.id_obedience_level, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT OLD.code <=> NEW.code
|
|
UNION
|
|
-- Changed name
|
|
SELECT NEW.id_obedience_level, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_obedience_level, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Command_Category;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Command_Category;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Command_Category
|
|
BEFORE INSERT ON parts.DOG_Command_Category
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Command_Category
|
|
BEFORE UPDATE ON parts.DOG_Command_Category
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Command_Category_Audit (
|
|
id_command_category
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed code
|
|
SELECT NEW.id_command_category, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT OLD.code <=> NEW.code
|
|
UNION
|
|
-- Changed name
|
|
SELECT NEW.id_command_category, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_command_category, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Command;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Command;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Command
|
|
BEFORE INSERT ON parts.DOG_Command
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Command
|
|
BEFORE UPDATE ON parts.DOG_Command
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Command_Audit (
|
|
id_command
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed id_command_category
|
|
SELECT NEW.id_command, 'id_command_category', CONVERT(OLD.id_command_category, CHAR), CONVERT(NEW.id_command_category, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_command_category <=> NEW.id_command_category)
|
|
UNION
|
|
-- Changed name
|
|
SELECT NEW.id_command, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
-- Changed hand_signal_default_description
|
|
SELECT NEW.id_command, 'hand_signal_default_description', OLD.hand_signal_default_description, NEW.hand_signal_default_description, NEW.id_change_set
|
|
WHERE NOT OLD.hand_signal_default_description <=> NEW.hand_signal_default_description
|
|
UNION
|
|
-- Changed can_have_button
|
|
SELECT NEW.id_command, 'can_have_button', CONVERT(CONVERT(OLD.can_have_button, SIGNED), CHAR), CONVERT(CONVERT(NEW.can_have_button, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.can_have_button <=> NEW.can_have_button)
|
|
UNION
|
|
-- Changed notes
|
|
SELECT NEW.id_command, 'notes', OLD.notes, NEW.notes, NEW.id_change_set
|
|
WHERE NOT OLD.notes <=> NEW.notes
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_command, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Dog_Command_Link;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Dog_Command_Link;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Dog_Command_Link
|
|
BEFORE INSERT ON parts.DOG_Dog_Command_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Dog_Command_Link
|
|
BEFORE UPDATE ON parts.DOG_Dog_Command_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Dog_Command_Link_Audit (
|
|
id_link
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed id_dog
|
|
SELECT NEW.id_link, 'id_dog', CONVERT(OLD.id_dog, CHAR), CONVERT(NEW.id_dog, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_dog <=> NEW.id_dog)
|
|
UNION
|
|
-- Changed id_command
|
|
SELECT NEW.id_link, 'id_command', CONVERT(OLD.id_command, CHAR), CONVERT(NEW.id_command, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_command <=> NEW.id_command)
|
|
UNION
|
|
-- Changed id_understanding_level
|
|
SELECT NEW.id_link, 'id_understanding_level', CONVERT(OLD.id_understanding_level, CHAR), CONVERT(NEW.id_understanding_level, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_understanding_level <=> NEW.id_understanding_level)
|
|
UNION
|
|
-- Changed id_obedience_level
|
|
SELECT NEW.id_link, 'id_obedience_level', CONVERT(OLD.id_obedience_level, CHAR), CONVERT(NEW.id_obedience_level, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_obedience_level <=> NEW.id_obedience_level)
|
|
UNION
|
|
-- Changed hand_signal_description
|
|
SELECT NEW.id_link, 'hand_signal_description', OLD.hand_signal_description, NEW.hand_signal_description, NEW.id_change_set
|
|
WHERE NOT OLD.hand_signal_description <=> NEW.hand_signal_description
|
|
UNION
|
|
-- Changed notes
|
|
SELECT NEW.id_link, 'notes', OLD.notes, NEW.notes, NEW.id_change_set
|
|
WHERE NOT OLD.notes <=> NEW.notes
|
|
UNION
|
|
/*
|
|
-- Changed has_button
|
|
SELECT NEW.id_link, 'has_button', CONVERT(CONVERT(OLD.has_button, SIGNED), CHAR), CONVERT(CONVERT(NEW.has_button, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.has_button <=> NEW.has_button)
|
|
UNION
|
|
*/
|
|
-- Changed active
|
|
SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Personal_Best;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Personal_Best;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Personal_Best
|
|
BEFORE INSERT ON parts.DOG_Personal_Best
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Personal_Best
|
|
BEFORE UPDATE ON parts.DOG_Personal_Best
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Personal_Best_Audit (
|
|
id_personal_best
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed id_dog_command_link
|
|
SELECT NEW.id_personal_best, 'id_dog_command_link', CONVERT(OLD.id_dog_command_link, CHAR), CONVERT(NEW.id_dog_command_link, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_dog_command_link <=> NEW.id_dog_command_link)
|
|
UNION
|
|
-- Changed is_achieved_using_button
|
|
SELECT NEW.id_personal_best, 'is_achieved_using_button', CONVERT(CONVERT(OLD.is_achieved_using_button, SIGNED), CHAR), CONVERT(CONVERT(NEW.is_achieved_using_button, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.is_achieved_using_button <=> NEW.is_achieved_using_button)
|
|
UNION
|
|
-- Changed situation
|
|
SELECT NEW.id_personal_best, 'situation', OLD.situation, NEW.situation, NEW.id_change_set
|
|
WHERE NOT OLD.situation <=> NEW.situation
|
|
UNION
|
|
-- Changed quantity
|
|
SELECT NEW.id_personal_best, 'quantity', CONVERT(OLD.quantity, CHAR), CONVERT(NEW.quantity, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.quantity <=> NEW.quantity)
|
|
UNION
|
|
-- Changed duration_seconds
|
|
SELECT NEW.id_personal_best, 'duration_seconds', CONVERT(OLD.duration_seconds, CHAR), CONVERT(NEW.duration_seconds, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.duration_seconds <=> NEW.duration_seconds)
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_personal_best, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Location;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Location;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Location
|
|
BEFORE INSERT ON parts.DOG_Location
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Location
|
|
BEFORE UPDATE ON parts.DOG_Location
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Location_Audit (
|
|
id_location
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed code
|
|
SELECT NEW.id_location, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT (OLD.code <=> NEW.code)
|
|
UNION
|
|
-- Changed name
|
|
SELECT NEW.id_location, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT (OLD.name <=> NEW.name)
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_location, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Location_Link;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Location_Link;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Location_Link
|
|
BEFORE INSERT ON parts.DOG_Location_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Location_Link
|
|
BEFORE UPDATE ON parts.DOG_Location_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Location_Link_Audit (
|
|
id_link
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed id_location_parent
|
|
SELECT NEW.id_link, 'id_location_parent', CONVERT(OLD.id_location_parent, CHAR), CONVERT(NEW.id_location_parent, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_location_parent <=> NEW.id_location_parent)
|
|
UNION
|
|
-- Changed id_location_child
|
|
SELECT NEW.id_link, 'id_location_child', CONVERT(OLD.id_location_child, CHAR), CONVERT(NEW.id_location_child, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_location_child <=> NEW.id_location_child)
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Colour;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Colour;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Colour
|
|
BEFORE INSERT ON parts.DOG_Colour
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Colour
|
|
BEFORE UPDATE ON parts.DOG_Colour
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Colour_Audit (
|
|
id_colour
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed code
|
|
SELECT NEW.id_colour, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT (OLD.code <=> NEW.code)
|
|
UNION
|
|
-- Changed name
|
|
SELECT NEW.id_colour, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT (OLD.name <=> NEW.name)
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_colour, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Button_Shape;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Button_Shape;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Button_Shape
|
|
BEFORE INSERT ON parts.DOG_Button_Shape
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Button_Shape
|
|
BEFORE UPDATE ON parts.DOG_Button_Shape
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Button_Shape_Audit (
|
|
id_button_shape
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed code
|
|
SELECT NEW.id_button_shape, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT (OLD.code <=> NEW.code)
|
|
UNION
|
|
-- Changed name
|
|
SELECT NEW.id_button_shape, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT (OLD.name <=> NEW.name)
|
|
UNION
|
|
-- Changed description
|
|
SELECT NEW.id_button_shape, 'description', OLD.description, NEW.description, NEW.id_change_set
|
|
WHERE NOT (OLD.description <=> NEW.description)
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_button_shape, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Image;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Image;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Image
|
|
BEFORE INSERT ON parts.DOG_Image
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Image
|
|
BEFORE UPDATE ON parts.DOG_Image
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Image_Audit (
|
|
id_image
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed id_file_type
|
|
SELECT NEW.id_image, 'id_file_type', CONVERT(OLD.id_file_type, CHAR), CONVERT(NEW.id_file_type, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_file_type <=> NEW.id_file_type)
|
|
UNION
|
|
-- Changed id_dog
|
|
SELECT NEW.id_image, 'id_dog', CONVERT(OLD.id_dog, CHAR), CONVERT(NEW.id_dog, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_dog <=> NEW.id_dog)
|
|
UNION
|
|
-- Changed path
|
|
SELECT NEW.id_image, 'path', OLD.path, NEW.path, NEW.id_change_set
|
|
WHERE NOT (OLD.path <=> NEW.path)
|
|
UNION
|
|
-- Changed display_order
|
|
SELECT NEW.id_image, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.display_order <=> NEW.display_order)
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_image, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Button_Icon;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Button_Icon;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Button_Icon
|
|
BEFORE INSERT ON parts.DOG_Button_Icon
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Button_Icon
|
|
BEFORE UPDATE ON parts.DOG_Button_Icon
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Button_Icon_Audit (
|
|
id_button_icon
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed id_image
|
|
SELECT NEW.id_button_icon, 'id_image', CONVERT(OLD.id_image, CHAR), CONVERT(NEW.id_image, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_image <=> NEW.id_image)
|
|
UNION
|
|
-- Changed code
|
|
SELECT NEW.id_button_icon, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT (OLD.code <=> NEW.code)
|
|
UNION
|
|
-- Changed name
|
|
SELECT NEW.id_button_icon, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT (OLD.name <=> NEW.name)
|
|
UNION
|
|
-- Changed description
|
|
SELECT NEW.id_button_icon, 'description', OLD.description, NEW.description, NEW.id_change_set
|
|
WHERE NOT (OLD.description <=> NEW.description)
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_button_icon, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Command_Button_Link;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Command_Button_Link;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Command_Button_Link
|
|
BEFORE INSERT ON parts.DOG_Command_Button_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Command_Button_Link
|
|
BEFORE UPDATE ON parts.DOG_Command_Button_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Command_Button_Link_Audit (
|
|
id_link
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed id_command
|
|
SELECT NEW.id_link, 'id_command', CONVERT(OLD.id_command, CHAR), CONVERT(NEW.id_command, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_command <=> NEW.id_command)
|
|
UNION
|
|
-- Changed id_button_shape
|
|
SELECT NEW.id_link, 'id_button_shape', CONVERT(OLD.id_button_shape, CHAR), CONVERT(NEW.id_button_shape, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_button_shape <=> NEW.id_button_shape)
|
|
UNION
|
|
-- Changed id_button_colour
|
|
SELECT NEW.id_link, 'id_button_colour', CONVERT(OLD.id_button_colour, CHAR), CONVERT(NEW.id_button_colour, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_button_colour <=> NEW.id_button_colour)
|
|
UNION
|
|
-- Changed id_button_icon
|
|
SELECT NEW.id_link, 'id_button_icon', CONVERT(OLD.id_button_icon, CHAR), CONVERT(NEW.id_button_icon, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_button_icon <=> NEW.id_button_icon)
|
|
UNION
|
|
-- Changed id_location
|
|
SELECT NEW.id_link, 'id_location', CONVERT(OLD.id_location, CHAR), CONVERT(NEW.id_location, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_location <=> NEW.id_location)
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Drive;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Drive;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Drive
|
|
BEFORE INSERT ON parts.DOG_Drive
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Drive
|
|
BEFORE UPDATE ON parts.DOG_Drive
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Drive_Audit (
|
|
id_drive
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed code
|
|
SELECT NEW.id_drive, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT (OLD.code <=> NEW.code)
|
|
UNION
|
|
-- Changed name
|
|
SELECT NEW.id_drive, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT (OLD.name <=> NEW.name)
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_drive, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP TRIGGER IF EXISTS parts.before_insert_DOG_Dog_Drive_Link;
|
|
DROP TRIGGER IF EXISTS parts.before_update_DOG_Dog_Drive_Link;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_insert_DOG_Dog_Drive_Link
|
|
BEFORE INSERT ON parts.DOG_Dog_Drive_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER parts.before_update_DOG_Dog_Drive_Link
|
|
BEFORE UPDATE ON parts.DOG_Dog_Drive_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO parts.DOG_Dog_Drive_Link_Audit (
|
|
id_link
|
|
, name_field
|
|
, value_prev
|
|
, value_new
|
|
, id_change_set
|
|
)
|
|
-- Changed id_dog
|
|
SELECT NEW.id_link, 'id_dog', CONVERT(OLD.id_dog, CHAR), CONVERT(NEW.id_dog, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_dog <=> NEW.id_dog)
|
|
UNION
|
|
-- Changed id_drive
|
|
SELECT NEW.id_link, 'id_drive', CONVERT(OLD.id_drive, CHAR), CONVERT(NEW.id_drive, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.id_drive <=> NEW.id_drive)
|
|
UNION
|
|
-- Changed dominance_ratio
|
|
SELECT NEW.id_link, 'dominance_ratio', CONVERT(OLD.dominance_ratio, CHAR), CONVERT(NEW.dominance_ratio, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.dominance_ratio <=> NEW.dominance_ratio)
|
|
UNION
|
|
-- Changed active
|
|
SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
USE parts;
|
|
|
|
DROP PROCEDURE IF EXISTS parts.p_core_validate_guid;
|
|
DROP PROCEDURE IF EXISTS parts.p_core_validate_guid_test;
|
|
|
|
DELIMITER //
|
|
CREATE PROCEDURE parts.p_core_validate_guid (
|
|
IN a_guid BINARY(36)
|
|
)
|
|
BEGIN
|
|
IF ISNULL(a_guid) THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'GUID is required.'
|
|
;
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE PROCEDURE parts.p_core_validate_guid_test ()
|
|
BEGIN
|
|
CALL parts.p_core_validate_guid ( 'nips' );
|
|
CALL parts.p_core_validate_guid ( NULL );
|
|
END //
|
|
DELIMITER ;
|
|
|
|
-- CALL parts.p_core_validate_guid_test();
|
|
USE parts;
|
|
|
|
DROP PROCEDURE IF EXISTS parts.p_core_debug_timing_reporting;
|
|
|
|
DELIMITER //
|
|
CREATE PROCEDURE parts.p_core_debug_timing_reporting (
|
|
IN a_time_start TIMESTAMP(6)
|
|
)
|
|
BEGIN
|
|
/*
|
|
PROCEDURE parts.p_core_debug_timing_reporting
|
|
Shared method timing reporting
|
|
*/
|
|
DECLARE v_time_end TIMESTAMP(6);
|
|
|
|
SET v_time_end := CURRENT_TIMESTAMP(6);
|
|
SELECT
|
|
a_time_start
|
|
, UNIX_TIMESTAMP(a_time_start)
|
|
, MICROSECOND(a_time_start) / 1000
|
|
, v_time_end
|
|
, UNIX_TIMESTAMP(v_time_end)
|
|
, MICROSECOND(v_time_end) / 1000
|
|
, v_time_end - a_time_start AS timestamp_delta
|
|
, UNIX_TIMESTAMP(v_time_end - a_time_start) AS UNIX_TIMESTAMP_timestamp_delta
|
|
, MICROSECOND(v_time_end - a_time_start) AS MICROSECOND_timestamp_delta
|
|
-- , TIME_FORMAT(TIMEDIFF(v_time_end, a_time_start), '%H:%i:%s') AS time_difference
|
|
, CONCAT(
|
|
TIME_FORMAT(TIMEDIFF(v_time_end, a_time_start), '%H hours, %i minutes, %s seconds'),
|
|
', ',
|
|
TIMESTAMPDIFF(MICROSECOND, a_time_start, v_time_end) % 1000000 / 1000, ' milliseconds'
|
|
) AS time_difference
|
|
;
|
|
|
|
END //
|
|
DELIMITER ;
|
|
|
|
/*
|
|
CALL parts.p_core_debug_timing_reporting (
|
|
CURRENT_TIMESTAMP(6)
|
|
);
|
|
*/
|
|
USE parts;
|
|
|
|
DROP PROCEDURE IF EXISTS parts.p_core_split;
|
|
|
|
DELIMITER //
|
|
CREATE PROCEDURE parts.p_core_split (
|
|
IN a_guid BINARY(36)
|
|
, IN a_string LONGTEXT
|
|
, IN a_separator VARCHAR(1000)
|
|
-- IN a_allow_empty BIT
|
|
, IN a_debug BIT
|
|
)
|
|
BEGIN
|
|
DECLARE v_has_string BIT;
|
|
DECLARE v_has_separator BIT;
|
|
DECLARE v_i_separator INT;
|
|
DECLARE v_i_start INT;
|
|
DECLARE v_i_end INT;
|
|
DECLARE v_current_item VARCHAR(4000);
|
|
DECLARE v_time_start TIMESTAMP(6);
|
|
|
|
SET v_time_start := CURRENT_TIMESTAMP(6);
|
|
SET a_string := IFNULL(a_string, '');
|
|
SET a_separator := IFNULL(a_separator, '');
|
|
SET a_debug := IFNULL(a_debug, 0);
|
|
|
|
IF a_debug = 1 THEN
|
|
SELECT
|
|
a_guid
|
|
, a_string
|
|
, a_separator
|
|
, a_debug
|
|
;
|
|
END IF;
|
|
|
|
CALL parts.p_core_validate_guid ( a_guid );
|
|
|
|
DROP TABLE IF EXISTS tmp_Split_Split;
|
|
|
|
CREATE TEMPORARY TABLE tmp_Split_Split (
|
|
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
substring VARCHAR(4000) NOT NULL
|
|
);
|
|
|
|
SET v_has_string = CASE WHEN a_string = '' THEN 0 ELSE 1 END;
|
|
SET v_has_separator = CASE WHEN a_separator = '' THEN 0 ELSE 1 END;
|
|
|
|
IF v_has_string THEN
|
|
|
|
SET v_i_start = 1;
|
|
SET v_i_end = LOCATE(',', a_string);
|
|
|
|
WHILE v_i_end > 0 DO
|
|
SET v_current_item = SUBSTRING(a_string, v_i_start, v_i_end - v_i_start);
|
|
INSERT INTO tmp_Split_Split (substring) VALUES (v_current_item);
|
|
|
|
SET v_i_start = v_i_end + 1;
|
|
SET v_i_end = LOCATE(',', a_string, v_i_start);
|
|
END WHILE;
|
|
|
|
SET v_current_item = SUBSTRING(a_string, v_i_start);
|
|
INSERT INTO tmp_Split_Split (substring) VALUES (TRIM(v_current_item));
|
|
END IF;
|
|
|
|
IF EXISTS (SELECT * FROM tmp_Split_Split LIMIT 1) THEN
|
|
START TRANSACTION;
|
|
INSERT INTO parts.CORE_Split_Temp (
|
|
guid
|
|
, display_order
|
|
, substring
|
|
)
|
|
SELECT
|
|
a_guid
|
|
, display_order
|
|
, substring
|
|
FROM tmp_Split_Split
|
|
;
|
|
COMMIT;
|
|
END IF;
|
|
|
|
DROP TABLE IF EXISTS tmp_Split_Split;
|
|
|
|
IF a_debug = 1 THEN
|
|
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
/*
|
|
CALL parts.p_core_split (
|
|
'nips'
|
|
, 'noods, cheese ' -- a_string
|
|
, ',' -- a_separator
|
|
-- '0', -- a_allow_empty
|
|
, 1
|
|
);
|
|
|
|
SELECT *
|
|
FROM parts.CORE_Split_Temp
|
|
WHERE GUID = 'nips';
|
|
|
|
CALL parts.p_core_clear_split_temp( 'nips' );
|
|
*/
|
|
|
|
USE parts;
|
|
|
|
DROP PROCEDURE IF EXISTS parts.p_core_clear_split;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE PROCEDURE parts.p_core_clear_split (
|
|
IN a_guid BINARY(36)
|
|
)
|
|
BEGIN
|
|
CALL parts.p_core_validate_guid( a_guid );
|
|
|
|
START TRANSACTION;
|
|
|
|
-- DROP TABLE IF EXISTS
|
|
DELETE FROM parts.CORE_Split_Temp
|
|
WHERE GUID = a_guid
|
|
;
|
|
|
|
COMMIT;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
/*
|
|
|
|
CALL parts.p_core_clear_split ( 'nips' );
|
|
|
|
|
|
*/
|
|
|
|
USE parts;
|
|
|
|
DROP PROCEDURE IF EXISTS parts.p_core_split_key_value_pair_csv;
|
|
|
|
DELIMITER //
|
|
CREATE PROCEDURE parts.p_core_split_key_value_pair_csv (
|
|
IN a_guid BINARY(36)
|
|
, IN a_string LONGTEXT
|
|
, IN a_debug BIT
|
|
)
|
|
BEGIN
|
|
DECLARE v_has_string BIT;
|
|
DECLARE v_current_item VARCHAR(4000);
|
|
DECLARE v_time_start TIMESTAMP(6);
|
|
|
|
SET v_time_start := CURRENT_TIMESTAMP(6);
|
|
SET a_string := IFNULL(a_string, '');
|
|
SET a_debug := IFNULL(a_debug, 0);
|
|
|
|
SET v_has_string = CASE WHEN a_string = '' THEN 0 ELSE 1 END;
|
|
|
|
IF a_debug = 1 THEN
|
|
SELECT
|
|
a_guid
|
|
, a_string
|
|
, a_debug
|
|
;
|
|
END IF;
|
|
|
|
CALL parts.p_core_validate_guid ( a_guid );
|
|
|
|
DROP TABLE IF EXISTS tmp_Input_Split_Key_Value_Pair_Csv;
|
|
DROP TABLE IF EXISTS tmp_Split_Split_Key_Value_Pair_Csv;
|
|
|
|
CREATE TEMPORARY TABLE tmp_Input_Split_Key_Value_Pair_Csv (
|
|
input_string TEXT
|
|
);
|
|
|
|
CREATE TEMPORARY TABLE tmp_Split_Split_Key_Value_Pair_Csv (
|
|
id INT AUTO_INCREMENT PRIMARY KEY
|
|
, key_column VARCHAR(4000)
|
|
, value_column VARCHAR(4000)
|
|
);
|
|
|
|
INSERT INTO tmp_Input_Split_Key_Value_Pair_Csv (
|
|
input_string
|
|
)
|
|
VALUES (
|
|
a_string
|
|
);
|
|
|
|
INSERT INTO tmp_Split_Split_Key_Value_Pair_Csv (key_column, value_column)
|
|
SELECT
|
|
SUBSTRING_INDEX(SUBSTRING_INDEX(t.pair, ':', 1), ',', -1) AS key_column,
|
|
SUBSTRING_INDEX(t.pair, ':', -1) AS value_column
|
|
FROM (
|
|
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(input_string, ',', n), ',', -1) pair
|
|
FROM temp_input
|
|
CROSS JOIN (
|
|
SELECT a.N + b.N * 10 + 1 n
|
|
FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
|
|
CROSS JOIN (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
|
|
ORDER BY n
|
|
) numbers
|
|
WHERE n <= 1 + (LENGTH(input_string) - LENGTH(REPLACE(input_string, ',', '')))
|
|
) t;
|
|
|
|
IF EXISTS (SELECT * FROM tmp_Split_Split_Key_Value_Pair_Csv LIMIT 1) THEN
|
|
START TRANSACTION;
|
|
INSERT INTO parts.CORE_Split_Key_Value_Pair_Csv_Temp (
|
|
guid
|
|
, id
|
|
, key_column
|
|
, value_column
|
|
)
|
|
SELECT
|
|
a_guid
|
|
, id
|
|
, key_column
|
|
, value_column
|
|
FROM tmp_Split_Split_Key_Value_Pair_Csv
|
|
;
|
|
COMMIT;
|
|
END IF;
|
|
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_Input_Split_Key_Value_Pair_Csv;
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Split_Key_Value_Pair_Csv;
|
|
|
|
IF a_debug = 1 THEN
|
|
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
/*
|
|
CALL parts.p_core_split_key_value_pair_csv (
|
|
'nipsnipsnipsnipsnipsnipsnipsnipsnips'
|
|
, '1:100,2:200,3:300,4:400' -- a_string
|
|
, 1
|
|
);
|
|
|
|
SELECT *
|
|
FROM parts.CORE_Split_key_value_pair_csv_Temp
|
|
WHERE GUID = 'nipsnipsnipsnipsnipsnipsnipsnipsnips';
|
|
|
|
CALL parts.p_core_clear_split_key_value_pair_csv_temp( 'nipsnipsnipsnipsnipsnipsnipsnipsnips' );
|
|
*/
|
|
|
|
USE parts;
|
|
|
|
DROP PROCEDURE IF EXISTS parts.p_core_clear_split_key_value_pair_csv;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE PROCEDURE parts.p_core_clear_split_key_value_pair_csv (
|
|
IN a_guid BINARY(36)
|
|
)
|
|
BEGIN
|
|
CALL parts.p_core_validate_guid( a_guid );
|
|
|
|
START TRANSACTION;
|
|
|
|
-- DROP TABLE IF EXISTS
|
|
DELETE FROM parts.CORE_Split_Key_Value_Pair_Csv_Temp
|
|
WHERE GUID = a_guid
|
|
;
|
|
|
|
COMMIT;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
/*
|
|
|
|
CALL parts.p_core_clear_split_key_value_pair_csv ( 'nips' );
|
|
|
|
|
|
*/
|
|
|
|
USE parts;
|
|
|
|
DROP PROCEDURE IF EXISTS parts.p_DOG_user_eval;
|
|
DROP PROCEDURE IF EXISTS parts.p_DOG_calc_user;
|
|
|
|
DELIMITER //
|
|
CREATE PROCEDURE parts.p_DOG_calc_user (
|
|
IN a_guid BINARY(36)
|
|
, IN a_ids_user TEXT
|
|
, IN a_get_inactive_user BIT
|
|
, IN a_ids_permission VARCHAR(4000)
|
|
, IN a_debug BIT
|
|
)
|
|
BEGIN
|
|
DECLARE v_has_filter_permission BIT;
|
|
DECLARE v_has_filter_user BIT;
|
|
DECLARE v_id_permission INT;
|
|
DECLARE v_time_start TIMESTAMP(6);
|
|
DECLARE v_ids_row_delete VARCHAR(500);
|
|
DECLARE v_code_type_error_bad_data VARCHAR(200);
|
|
DECLARE v_id_type_error_bad_data INT;
|
|
DECLARE v_code_error_permission VARCHAR(200);
|
|
DECLARE v_id_permission_required INT;
|
|
DECLARE v_priority_access_level_required INT;
|
|
DECLARE v_priority_access_level_view INT;
|
|
|
|
SET v_time_start := CURRENT_TIMESTAMP(6);
|
|
SET v_code_type_error_bad_data := (SELECT code FROM parts.CORE_Msg_Error_Type WHERE code = 'BAD_DATA');
|
|
SET v_id_type_error_bad_data := (SELECT id_type FROM parts.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data);
|
|
SET v_code_error_permission := (SELECT code FROM parts.CORE_Msg_Error_Type WHERE id_type = 2);
|
|
SET v_priority_access_level_view := (SELECT priority FROM parts.DOG_Access_Level WHERE code = 'VIEW' LIMIT 1);
|
|
|
|
CALL parts.p_core_validate_guid ( a_guid );
|
|
SET a_ids_user := TRIM(IFNULL(a_ids_user, ''));
|
|
SET a_get_inactive_user := IFNULL(a_get_inactive_user, 0);
|
|
SET a_ids_permission := TRIM(IFNULL(a_ids_permission, ''));
|
|
SET a_debug := IFNULL(a_debug, 0);
|
|
|
|
IF a_debug = 1 THEN
|
|
SELECT
|
|
a_guid
|
|
, a_ids_user
|
|
, a_get_inactive_user
|
|
, a_ids_permission
|
|
, a_debug
|
|
;
|
|
END IF;
|
|
|
|
DROP TABLE IF EXISTS tmp_Calc_User;
|
|
DROP TABLE IF EXISTS tmp_User_Calc_User;
|
|
DROP TABLE IF EXISTS tmp_Split_Calc_User;
|
|
|
|
CREATE TEMPORARY TABLE tmp_Calc_User (
|
|
id_row INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
|
, id_user INT NULL
|
|
, id_permission_required INT NOT NULL
|
|
, priority_access_level_required INT NOT NULL
|
|
, is_super_user BIT NULL
|
|
, priority_access_level_user INT NULL
|
|
, has_access BIT
|
|
);
|
|
|
|
CREATE TEMPORARY TABLE tmp_User_Calc_User (
|
|
id_user INT NOT NULL
|
|
, is_super_user BIT NOT NULL
|
|
-- , id_access_level INT
|
|
, priority_access_level INT NOT NULL
|
|
);
|
|
|
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_User (
|
|
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_type INT NULL
|
|
, code VARCHAR(100) NOT NULL
|
|
, msg VARCHAR(4000) NOT NULL
|
|
);
|
|
|
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Calc_User (
|
|
substring VARCHAR(4000) NOT NULL
|
|
, as_int INT NULL
|
|
);
|
|
DELETE FROM tmp_Split_Calc_User;
|
|
|
|
SET v_has_filter_user = CASE WHEN a_ids_user = '' THEN 0 ELSE 1 END;
|
|
SET a_ids_permission = REPLACE(a_ids_permission, '|', ',');
|
|
SET v_has_filter_permission = CASE WHEN a_ids_permission = '' THEN 0 ELSE 1 END;
|
|
-- SET v_id_access_level_view = (SELECT id_access_level FROM parts.DOG_Access_Level WHERE code = 'VIEW' LIMIT 1);
|
|
|
|
|
|
-- Permission IDs
|
|
IF NOT v_has_filter_permission THEN
|
|
INSERT INTO tmp_Msg_Error_Calc_User (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
SELECT
|
|
v_id_type_error_bad_data
|
|
, v_code_type_error_bad_data
|
|
, 'Permission ID required.'
|
|
;
|
|
ELSE
|
|
CALL parts.p_core_split(a_guid, a_ids_permission, ',', a_debug);
|
|
|
|
INSERT INTO tmp_Split_Calc_User (
|
|
substring
|
|
, as_int
|
|
)
|
|
SELECT
|
|
substring
|
|
, CONVERT(substring, DECIMAL(10,0)) AS as_int
|
|
FROM parts.CORE_Split_Temp
|
|
WHERE
|
|
GUID = a_guid
|
|
AND NOT ISNULL(substring)
|
|
AND substring != ''
|
|
;
|
|
|
|
CALL parts.p_core_clear_split( a_guid );
|
|
|
|
-- Invalid or inactive
|
|
IF EXISTS (
|
|
SELECT PERM.id_permission
|
|
FROM tmp_Split_Calc_User t_S
|
|
LEFT JOIN parts.DOG_Permission PERM ON t_S.as_int = PERM.id_permission
|
|
WHERE
|
|
ISNULL(t_S.as_int)
|
|
OR ISNULL(PERM.id_permission)
|
|
OR PERM.active = 0
|
|
) THEN
|
|
INSERT INTO tmp_Msg_Error_Calc_User (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
SELECT
|
|
v_id_type_error_bad_data
|
|
, v_code_type_error_bad_data
|
|
, CONCAT('Invalid or inactive permission IDs: ', IFNULL(GROUP_CONCAT(t_S.substring SEPARATOR ', '), 'NULL'))
|
|
FROM tmp_Split_Calc_User t_S
|
|
LEFT JOIN parts.DOG_Permission PERM ON t_S.as_int = PERM.id_permission
|
|
WHERE
|
|
ISNULL(t_S.as_int)
|
|
OR ISNULL(PERM.id_permission)
|
|
OR PERM.active = 0
|
|
;
|
|
ELSE
|
|
SELECT
|
|
PERM.id_permission
|
|
, PERM.id_access_level_required
|
|
INTO
|
|
v_id_permission_required
|
|
, v_priority_access_level_required
|
|
FROM tmp_Split_Calc_User t_S
|
|
LEFT JOIN parts.DOG_Permission PERM ON t_S.as_int = PERM.id_permission
|
|
INNER JOIN parts.DOG_Access_Level AL ON PERM.id_access_level_required = AL.id_access_level
|
|
ORDER BY AL.priority ASC
|
|
LIMIT 1
|
|
;
|
|
|
|
IF ISNULL(v_id_permission_required) THEN
|
|
INSERT INTO tmp_Msg_Error_Calc_User (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
SELECT
|
|
v_id_type_error_bad_data
|
|
, v_code_type_error_bad_data
|
|
, 'Valid Permission ID required.'
|
|
;
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
DELETE FROM tmp_Split_Calc_User;
|
|
|
|
-- Users
|
|
CALL parts.p_core_split(a_guid, a_ids_user, ',', a_debug);
|
|
|
|
INSERT INTO tmp_Split_Calc_User (
|
|
substring
|
|
, as_int
|
|
)
|
|
SELECT
|
|
substring
|
|
, CONVERT(substring, DECIMAL(10,0)) AS as_int
|
|
FROM parts.CORE_Split_Temp
|
|
WHERE
|
|
GUID = a_guid
|
|
AND NOT ISNULL(substring)
|
|
AND substring != ''
|
|
;
|
|
|
|
CALL parts.p_core_clear_split( a_guid );
|
|
|
|
-- Invalid or inactive
|
|
IF EXISTS (SELECT U.id_user FROM tmp_Split_Calc_User t_S LEFT JOIN parts.DOG_User U ON t_S.as_int = U.id_user WHERE ISNULL(t_S.as_int) OR ISNULL(U.id_user) OR (a_get_inactive_user = 0 AND U.active = 0)) THEN
|
|
INSERT INTO tmp_Msg_Error_Calc_User (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
SELECT
|
|
v_id_type_error_bad_data
|
|
, v_code_type_error_bad_data
|
|
, CONCAT('Invalid or inactive user IDs: ', IFNULL(GROUP_CONCAT(t_S.substring SEPARATOR ', '), 'NULL'))
|
|
FROM tmp_Split_Calc_User t_S
|
|
LEFT JOIN parts.DOG_User U ON t_S.as_int = U.id_user
|
|
WHERE
|
|
ISNULL(t_S.as_int)
|
|
OR ISNULL(U.id_user)
|
|
OR (
|
|
a_get_inactive_user = 0
|
|
AND U.active = 0
|
|
)
|
|
;
|
|
ELSE
|
|
IF NOT EXISTS (SELECT * FROM tmp_Split_Calc_User) THEN
|
|
INSERT INTO tmp_Split_Calc_User (substring, as_int)
|
|
VALUES ( '', NULL );
|
|
END IF;
|
|
|
|
IF a_debug = 1 THEN
|
|
SELECT *
|
|
FROM tmp_Split_Calc_User;
|
|
END IF;
|
|
|
|
INSERT INTO tmp_User_Calc_User (
|
|
id_user
|
|
, is_super_user
|
|
, priority_access_level
|
|
)
|
|
SELECT
|
|
U.id_user
|
|
, IFNULL(U.is_super_user, 0) AS is_super_user
|
|
, IFNULL(MIN(AL_U.priority), v_priority_access_level_view) AS priority_access_level
|
|
FROM tmp_Split_Calc_User t_S
|
|
INNER JOIN parts.DOG_User U ON t_S.as_int = U.id_user
|
|
LEFT JOIN parts.DOG_User_Role_Link URL
|
|
ON U.id_user = URL.id_user
|
|
AND URL.active
|
|
LEFT JOIN parts.DOG_Role_Permission_Link RPL
|
|
ON URL.id_role = RPL.id_role
|
|
AND RPL.active
|
|
LEFT JOIN parts.DOG_Access_Level AL_U
|
|
ON RPL.id_access_level = AL_U.id_access_level
|
|
AND AL_U.active
|
|
GROUP BY U.id_user
|
|
;
|
|
|
|
INSERT INTO tmp_Calc_User (
|
|
id_user
|
|
, id_permission_required
|
|
, priority_access_level_required
|
|
, priority_access_level_user
|
|
, is_super_user
|
|
)
|
|
SELECT
|
|
t_UCU.id_user
|
|
, v_id_permission_required
|
|
, v_priority_access_level_required
|
|
, t_UCU.priority_access_level AS priority_access_level_user
|
|
, t_UCU.is_super_user AS is_super_user
|
|
FROM tmp_User_Calc_User t_UCU
|
|
;
|
|
END IF;
|
|
DELETE FROM tmp_Split_Calc_User;
|
|
|
|
|
|
-- Calculated fields
|
|
UPDATE tmp_Calc_User t_CU
|
|
SET
|
|
t_CU.has_access = (
|
|
(t_CU.is_super_user = 1)
|
|
OR (t_CU.priority_access_level_user <= t_CU.priority_access_level_required)
|
|
)
|
|
;
|
|
|
|
-- Export data to staging table
|
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_User) THEN
|
|
START TRANSACTION;
|
|
INSERT INTO parts.DOG_Calc_User_Temp (
|
|
guid
|
|
, id_user
|
|
, id_permission_required
|
|
, priority_access_level_required
|
|
, priority_access_level_user
|
|
, is_super_user
|
|
, has_access
|
|
)
|
|
SELECT
|
|
a_guid
|
|
, t_CU.id_user
|
|
, t_CU.id_permission_required
|
|
, t_CU.priority_access_level_required
|
|
, t_CU.priority_access_level_user
|
|
, t_CU.is_super_user
|
|
, t_CU.has_access
|
|
FROM tmp_Calc_User t_CU
|
|
;
|
|
COMMIT;
|
|
END IF;
|
|
|
|
IF a_debug = 1 THEN
|
|
SELECT * FROM tmp_Msg_Error_Calc_User;
|
|
SELECT * FROM tmp_Calc_User;
|
|
SELECT * FROM tmp_User_Calc_User;
|
|
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = a_guid;
|
|
CALL parts.p_DOG_clear_calc_user ( a_guid, a_debug );
|
|
END IF;
|
|
|
|
-- Clean up
|
|
DROP TABLE IF EXISTS tmp_Calc_User;
|
|
DROP TABLE IF EXISTS tmp_User_Calc_User;
|
|
DELETE FROM tmp_Split_Calc_User;
|
|
|
|
IF a_debug = 1 THEN
|
|
CALL parts.p_debug_timing_reporting( v_time_start );
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
/*
|
|
|
|
CALL parts.p_DOG_calc_user (
|
|
'chips ' -- a_guid
|
|
, 1 -- a_ids_user
|
|
, 0 -- a_get_inactive_user
|
|
, '2' -- a_ids_permission
|
|
, '1' -- a_ids_access_level
|
|
, 0 -- a_debug
|
|
);
|
|
CALL parts.p_DOG_calc_user (
|
|
'chips ' -- a_guid
|
|
, 1 -- a_ids_user
|
|
, 0 -- a_get_inactive_user
|
|
, '2' -- a_ids_permission
|
|
, '1' -- a_ids_access_level
|
|
, 0 -- a_debug
|
|
);
|
|
*/
|
|
USE parts;
|
|
|
|
DROP PROCEDURE IF EXISTS parts.p_DOG_clear_calc_user;
|
|
|
|
DELIMITER //
|
|
CREATE PROCEDURE parts.p_DOG_clear_calc_user (
|
|
IN a_guid BINARY(36)
|
|
, IN a_debug BIT
|
|
)
|
|
BEGIN
|
|
DECLARE v_time_start TIMESTAMP(6);
|
|
SET v_time_start := CURRENT_TIMESTAMP(6);
|
|
|
|
CALL parts.p_core_validate_guid ( a_guid );
|
|
|
|
START TRANSACTION;
|
|
|
|
DELETE FROM parts.DOG_Calc_User_Temp
|
|
WHERE GUID = a_guid
|
|
;
|
|
|
|
COMMIT;
|
|
|
|
IF a_debug = 1 THEN
|
|
CALL parts.p_debug_timing_reporting( v_time_start );
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
/*
|
|
|
|
CALL parts.p_DOG_clear_calc_user (
|
|
'chips ' -- a_guid
|
|
, 1 -- debug
|
|
);
|
|
|
|
SELECT *
|
|
FROM parts.DOG_Calc_User_Temp
|
|
WHERE GUID = 'chips '
|
|
;
|
|
|
|
*/
|
|
|
|
USE parts;
|
|
|
|
DROP PROCEDURE IF EXISTS parts.p_DOG_save_command;
|
|
|
|
DELIMITER //
|
|
CREATE PROCEDURE parts.p_DOG_save_command (
|
|
IN a_comment VARCHAR(500),
|
|
IN a_guid BINARY(36),
|
|
IN a_id_user INT,
|
|
IN a_debug BIT
|
|
)
|
|
BEGIN
|
|
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
|
DECLARE v_id_type_error_bad_data INT;
|
|
DECLARE v_id_permission_dog_admin INT;
|
|
DECLARE v_id_permission_dog_new INT;
|
|
DECLARE v_id_change_set INT;
|
|
DECLARE v_time_start TIMESTAMP(6);
|
|
DECLARE v_can_admin BIT;
|
|
DECLARE v_can_create BIT;
|
|
|
|
DECLARE exit handler for SQLEXCEPTION
|
|
BEGIN
|
|
GET DIAGNOSTICS CONDITION 1
|
|
@sqlstate = RETURNED_SQLSTATE
|
|
, @errno = MYSQL_ERRNO
|
|
, @text = MESSAGE_TEXT
|
|
;
|
|
|
|
ROLLBACK;
|
|
|
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_type INT NULL
|
|
, code VARCHAR(100)
|
|
, msg VARCHAR(4000) NOT NULL
|
|
);
|
|
|
|
INSERT INTO tmp_Msg_Error (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
SELECT
|
|
MET.id_type
|
|
, @errno
|
|
, @text
|
|
FROM parts.CORE_Msg_Error_Type MET
|
|
WHERE MET.code = 'MYSQL_ERROR'
|
|
;
|
|
|
|
SELECT
|
|
t_ERROR.id_error
|
|
, t_ERROR.id_type
|
|
, t_ERROR.code
|
|
, ERROR_TYPE.name
|
|
, ERROR_TYPE.description
|
|
, ERROR_TYPE.is_breaking_error
|
|
, ERROR_TYPE.background_colour
|
|
, ERROR_TYPE.text_colour
|
|
, t_ERROR.msg
|
|
FROM tmp_Msg_Error t_ERROR
|
|
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
|
;
|
|
|
|
DROP TABLE IF EXISTS tmp_Msg_Error;
|
|
END;
|
|
|
|
SET v_time_start := CURRENT_TIMESTAMP(6);
|
|
SET v_code_type_error_bad_data := 'BAD_DATA';
|
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
|
SET v_id_permission_dog_admin := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_ADMIN' LIMIT 1);
|
|
SET v_id_permission_dog_new := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' LIMIT 1);
|
|
|
|
CALL parts.p_core_validate_guid ( a_guid );
|
|
|
|
DROP TABLE IF EXISTS tmp_Command;
|
|
|
|
CREATE TEMPORARY TABLE tmp_Command (
|
|
id_command INT
|
|
, id_command_category INT
|
|
, name VARCHAR(250)
|
|
, hand_signal_default_description TEXT
|
|
, can_have_button BIT
|
|
, notes TEXT
|
|
, active BIT
|
|
, is_new BIT
|
|
, name_error VARCHAR(250)
|
|
|
|
, name_command_category VARCHAR(250)
|
|
);
|
|
|
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_type INT NULL
|
|
, code VARCHAR(100)
|
|
, msg VARCHAR(4000) NOT NULL
|
|
);
|
|
|
|
|
|
-- Get data from Temp table
|
|
INSERT INTO tmp_Command (
|
|
id_command
|
|
, id_command_category
|
|
, name
|
|
, hand_signal_default_description
|
|
, can_have_button
|
|
, notes
|
|
, active
|
|
, is_new
|
|
|
|
, name_command_category
|
|
)
|
|
SELECT
|
|
COMMAND_T.id_command AS id_command
|
|
, COMMAND_T.id_command_category AS id_command_category
|
|
, COALESCE(COMMAND_T.name, COMMAND.name) AS name
|
|
, COALESCE(COMMAND_T.hand_signal_default_description, COMMAND.hand_signal_default_description) AS hand_signal_default_description
|
|
, COALESCE(COMMAND_T.can_have_button, COMMAND.can_have_button) AS can_have_button
|
|
, COALESCE(COMMAND_T.notes, COMMAND.notes) AS notes
|
|
, COALESCE(COMMAND_T.active, COMMAND.active, 1) AS active
|
|
, CASE WHEN IFNULL(COMMAND_T.id_command, 0) < 1 THEN 1 ELSE 0 END AS is_new
|
|
|
|
, COMMAND_T.name_command_category AS name_command_category
|
|
FROM parts.DOG_Command_Temp COMMAND_T
|
|
LEFT JOIN parts.DOG_Command COMMAND ON COMMAND_T.id_command = COMMAND.id_command
|
|
WHERE COMMAND_T.guid = a_guid
|
|
;
|
|
|
|
UPDATE tmp_Command t_COMMAND
|
|
SET name_error = COALESCE(t_COMMAND.name, t_COMMAND.notes, t_COMMAND.name_command_category, '(No Command)')
|
|
;
|
|
|
|
-- Find missing id_command_category by name_command_category
|
|
UPDATE tmp_Command t_COMMAND
|
|
INNER JOIN parts.DOG_Command_Category COMMAND_CATEGORY ON t_COMMAND.name_command_category = COMMAND_CATEGORY.name
|
|
SET t_COMMAND.id_command_category = COMMAND_CATEGORY.id_command_category
|
|
WHERE t_COMMAND.id_command_category IS NULL
|
|
;
|
|
|
|
IF EXISTS (
|
|
SELECT *
|
|
FROM tmp_Command t_COMMAND
|
|
WHERE ISNULL(t_COMMAND.id_command_category)
|
|
LIMIT 1
|
|
) THEN
|
|
INSERT INTO tmp_Msg_Error (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
SELECT
|
|
v_id_type_error_bad_data
|
|
, v_code_type_error_bad_data
|
|
, CONCAT('The following Command(s) do not have a Category: ', GROUP_CONCAT(t_COMMAND.name_error SEPARATOR ', ')) AS msg
|
|
FROM tmp_Command t_COMMAND
|
|
WHERE t_COMMAND.id_command_category IS NULL
|
|
;
|
|
END IF;
|
|
|
|
-- Validation
|
|
-- Missing mandatory fields
|
|
-- id_command_category
|
|
IF EXISTS (SELECT * FROM tmp_Command t_COMMAND WHERE ISNULL(t_COMMAND.id_command_category) LIMIT 1) THEN
|
|
INSERT INTO tmp_Msg_Error (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
SELECT
|
|
v_id_type_error_bad_data
|
|
, v_code_type_error_bad_data
|
|
, CONCAT('The following Command(s) do not have a Category: ', GROUP_CONCAT(t_COMMAND.name_error SEPARATOR ', ')) AS msg
|
|
FROM tmp_Command t_COMMAND
|
|
WHERE ISNULL(t_COMMAND.id_command_category)
|
|
;
|
|
END IF;
|
|
-- name
|
|
IF EXISTS (SELECT * FROM tmp_Command t_COMMAND WHERE ISNULL(t_COMMAND.name) LIMIT 1) THEN
|
|
INSERT INTO tmp_Msg_Error (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
SELECT
|
|
v_id_type_error_bad_data
|
|
, v_code_type_error_bad_data
|
|
, CONCAT('The following Command(s) do not have a Name: ', GROUP_CONCAT(t_COMMAND.name_error SEPARATOR ', ')) AS msg
|
|
FROM tmp_Command t_COMMAND
|
|
WHERE ISNULL(t_COMMAND.name)
|
|
;
|
|
END IF;
|
|
-- can_have_button
|
|
IF EXISTS (SELECT * FROM tmp_Command t_COMMAND WHERE ISNULL(t_COMMAND.can_have_button) LIMIT 1) THEN
|
|
INSERT INTO tmp_Msg_Error (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
SELECT
|
|
v_id_type_error_bad_data
|
|
, v_code_type_error_bad_data
|
|
, CONCAT('The following Command(s) do not have a Can-Have-Button: ', GROUP_CONCAT(t_COMMAND.name_error SEPARATOR ', ')) AS msg
|
|
FROM tmp_Command t_COMMAND
|
|
WHERE ISNULL(t_COMMAND.can_have_button)
|
|
;
|
|
END IF;
|
|
|
|
-- Permissions
|
|
IF a_debug = 1 THEN
|
|
SELECT
|
|
a_guid
|
|
, a_id_user
|
|
, FALSE -- a_get_inactive_user
|
|
, v_id_permission_dog_admin
|
|
, v_id_permission_dog_new
|
|
, 0 -- a_debug
|
|
;
|
|
END IF;
|
|
|
|
CALL parts.p_DOG_calc_user(
|
|
a_guid
|
|
, a_id_user
|
|
, FALSE -- a_get_inactive_user
|
|
, v_id_permission_dog_admin
|
|
, 0 -- a_debug
|
|
);
|
|
|
|
SELECT
|
|
IFNULL(CU_T.has_access, 0)
|
|
INTO
|
|
v_can_admin
|
|
FROM parts.DOG_Calc_User_Temp CU_T
|
|
WHERE CU_T.GUID = a_guid
|
|
LIMIT 1
|
|
;
|
|
|
|
CALL parts.p_DOG_clear_calc_user(
|
|
a_guid
|
|
, 0 -- a_debug
|
|
);
|
|
|
|
CALL parts.p_DOG_calc_user(
|
|
a_guid
|
|
, a_id_user
|
|
, FALSE -- a_get_inactive_user
|
|
, v_id_permission_dog_new
|
|
, 0 -- a_debug
|
|
);
|
|
|
|
SELECT
|
|
IFNULL(CU_T.has_access, 0)
|
|
INTO
|
|
v_can_create
|
|
FROM parts.DOG_Calc_User_Temp CU_T
|
|
WHERE CU_T.GUID = a_guid
|
|
LIMIT 1
|
|
;
|
|
|
|
CALL parts.p_DOG_clear_calc_user(
|
|
a_guid
|
|
, 0 -- a_debug
|
|
);
|
|
|
|
IF (v_can_create = 0 AND EXISTS(SELECT * FROM tmp_Command WHERE is_new = 1)) THEN
|
|
DELETE t_ME
|
|
FROM tmp_Msg_Error t_ME
|
|
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
|
;
|
|
INSERT INTO tmp_Msg_Error (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
VALUES (
|
|
v_id_type_error_no_permission
|
|
, v_code_type_error_no_permission
|
|
, 'You do not have permission to create new Commands.'
|
|
)
|
|
;
|
|
END IF;
|
|
|
|
IF (v_can_admin = 0 AND EXISTS(SELECT * FROM tmp_Command WHERE is_new = 0)) THEN
|
|
DELETE t_ME
|
|
FROM tmp_Msg_Error t_ME
|
|
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
|
;
|
|
INSERT INTO tmp_Msg_Error (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
VALUES (
|
|
v_id_type_error_no_permission
|
|
, v_code_type_error_no_permission
|
|
, 'You do not have permission to admin Commands.'
|
|
)
|
|
;
|
|
END IF;
|
|
|
|
IF EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
|
IF a_debug = 1 THEN
|
|
SELECT * from tmp_Command;
|
|
END IF;
|
|
|
|
DELETE FROM tmp_Command;
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
|
START TRANSACTION;
|
|
|
|
INSERT INTO parts.DOG_Dog_Change_Set (
|
|
comment
|
|
, id_user_updated_last_by
|
|
, updated_last_on
|
|
)
|
|
VALUES (
|
|
a_comment
|
|
, a_id_user
|
|
, v_time_start
|
|
)
|
|
;
|
|
|
|
SET v_id_change_set := LAST_INSERT_ID();
|
|
|
|
UPDATE parts.DOG_Command COMMAND
|
|
INNER JOIN tmp_Command t_COMMAND
|
|
ON COMMAND.id_command = t_COMMAND.id_command
|
|
AND t_COMMAND.is_new = 0
|
|
SET
|
|
COMMAND.id_command_category = t_COMMAND.id_command_category
|
|
, COMMAND.name = t_COMMAND.name
|
|
, COMMAND.hand_signal_default_description = t_COMMAND.hand_signal_default_description
|
|
, COMMAND.can_have_button = t_COMMAND.can_have_button
|
|
, COMMAND.notes = t_COMMAND.notes
|
|
, COMMAND.active = t_COMMAND.active
|
|
, COMMAND.id_change_set = v_id_change_set
|
|
;
|
|
|
|
INSERT INTO parts.DOG_Command (
|
|
id_command_category
|
|
, name
|
|
, hand_signal_default_description
|
|
, can_have_button
|
|
, notes
|
|
, active
|
|
, id_user_created_by
|
|
, created_on
|
|
)
|
|
SELECT
|
|
t_COMMAND.id_command_category AS id_command_category
|
|
, t_COMMAND.name AS name
|
|
, t_COMMAND.hand_signal_default_description AS hand_signal_default_description
|
|
, t_COMMAND.can_have_button AS can_have_button
|
|
, t_COMMAND.notes AS notes
|
|
, t_COMMAND.active AS active
|
|
, a_id_user AS created_by
|
|
, v_time_start AS created_on
|
|
FROM tmp_Command t_COMMAND
|
|
WHERE
|
|
t_COMMAND.is_new = 1
|
|
AND t_COMMAND.active = 1
|
|
;
|
|
|
|
COMMIT;
|
|
END IF;
|
|
|
|
START TRANSACTION;
|
|
|
|
DELETE FROM parts.DOG_Command_Temp
|
|
WHERE GUID = a_guid
|
|
;
|
|
|
|
COMMIT;
|
|
|
|
-- Errors
|
|
SELECT
|
|
t_ERROR.id_error
|
|
, t_ERROR.id_type
|
|
, t_ERROR.code
|
|
, ERROR_TYPE.name
|
|
, ERROR_TYPE.description
|
|
, ERROR_TYPE.is_breaking_error
|
|
, ERROR_TYPE.background_colour
|
|
, ERROR_TYPE.text_colour
|
|
, t_ERROR.msg
|
|
FROM tmp_Msg_Error t_ERROR
|
|
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
|
;
|
|
|
|
IF a_debug = 1 THEN
|
|
SELECT * from tmp_Command;
|
|
END IF;
|
|
|
|
DROP TEMPORARY TABLE tmp_Command;
|
|
DROP TEMPORARY TABLE tmp_Msg_Error;
|
|
|
|
IF a_debug = 1 THEN
|
|
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
select
|
|
*
|
|
-- COUNT(*)
|
|
-- delete
|
|
from parts.DOG_Command_Temp
|
|
;
|
|
select COUNT(*)
|
|
from parts.DOG_Command_Temp
|
|
;
|
|
select
|
|
*
|
|
-- COUNT(*)
|
|
-- delete
|
|
from parts.DOG_Command
|
|
;
|
|
select COUNT(*)
|
|
from parts.DOG_Command
|
|
;
|
|
|
|
|
|
CALL parts.p_DOG_save_command (
|
|
'nipples'
|
|
, (SELECT GUID FROM parts.DOG_Command_Temp COMMAND_TEMP ORDER BY id_temp DESC LIMIT 1)
|
|
, 1
|
|
, 1
|
|
);
|
|
|
|
|
|
select
|
|
*
|
|
-- COUNT(*)
|
|
-- delete
|
|
from parts.DOG_Command_Temp
|
|
;
|
|
select COUNT(*)
|
|
from parts.DOG_Command_Temp
|
|
;
|
|
select
|
|
*
|
|
-- COUNT(*)
|
|
-- delete
|
|
from parts.DOG_Command
|
|
;
|
|
select COUNT(*)
|
|
from parts.DOG_Command
|
|
;
|
|
|
|
*/
|
|
USE parts;
|
|
|
|
DROP PROCEDURE IF EXISTS parts.p_DOG_test_save_command;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE PROCEDURE parts.p_DOG_test_save_command ()
|
|
BEGIN
|
|
|
|
DECLARE v_guid BINARY(36);
|
|
DECLARE v_time_start TIMESTAMP(6);
|
|
|
|
SET v_time_start := CURRENT_TIMESTAMP(6);
|
|
SET v_guid := 'nipple_ripple_chipple_spittle_pickle'; -- 123456789012345678901234567890123456
|
|
|
|
SELECT 'Start of Test';
|
|
|
|
SELECT *
|
|
FROM parts.DOG_Command
|
|
;
|
|
SELECT *
|
|
FROM parts.DOG_Command_Temp
|
|
;
|
|
|
|
START TRANSACTION;
|
|
|
|
INSERT INTO parts.DOG_Command_Temp (
|
|
id_command
|
|
, email
|
|
, name_contact
|
|
, name_company
|
|
, message
|
|
, guid
|
|
, active
|
|
)
|
|
/*
|
|
VALUES (
|
|
-1 -- id_command
|
|
, 'edward.middletonsmith@gmail.com' -- email
|
|
, 'Teddy' -- name_contact
|
|
, 'PARTS Ltd' -- name_company
|
|
, 'Sa dude' -- message
|
|
, v_guid
|
|
)
|
|
*/
|
|
VALUES (
|
|
-1 -- id_command
|
|
, 'edward.middletonsmith@gmail.com' -- email
|
|
, 'Teddy' -- name_contact
|
|
, 'PARTS Ltd' -- name_company
|
|
, 'hegrodorf is good' -- message
|
|
, v_guid
|
|
, 1 -- active
|
|
)
|
|
;
|
|
|
|
COMMIT;
|
|
|
|
SELECT *
|
|
FROM parts.DOG_Command_Temp
|
|
-- WHERE GUID = v_guid
|
|
;
|
|
|
|
CALL parts.p_DOG_save_command (
|
|
'Test save Command' -- comment
|
|
, v_guid -- guid
|
|
, 3 -- 1 -- id_user
|
|
, 1 -- debug
|
|
);
|
|
|
|
SELECT *
|
|
FROM parts.DOG_Command
|
|
;
|
|
SELECT *
|
|
FROM parts.DOG_Command_Temp
|
|
;
|
|
|
|
CALL parts.p_debug_timing_reporting ( v_time_start );
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
/*
|
|
SELECT 'Before Test';
|
|
SELECT *
|
|
FROM parts.DOG_Command
|
|
;
|
|
SELECT *
|
|
FROM parts.DOG_Command_Temp
|
|
;
|
|
|
|
|
|
CALL parts.p_DOG_test_save_command ();
|
|
|
|
SELECT 'After Test';
|
|
SELECT *
|
|
FROM parts.DOG_Command
|
|
;
|
|
SELECT *
|
|
FROM parts.DOG_Command_Temp
|
|
;
|
|
|
|
DELETE FROM parts.DOG_Command_Temp;
|
|
|
|
DROP TABLE IF EXISTS tmp_Msg_Error;
|
|
|
|
|
|
*/
|
|
|
|
USE parts;
|
|
|
|
DROP PROCEDURE IF EXISTS parts.p_DOG_get_many_dog_command;
|
|
|
|
DELIMITER //
|
|
CREATE PROCEDURE parts.p_DOG_get_many_dog_command (
|
|
IN a_id_user INT
|
|
, IN a_get_all_dog BIT
|
|
, IN a_get_inactive_dog BIT
|
|
, IN a_ids_dog TEXT
|
|
, IN a_get_all_command BIT
|
|
, IN a_get_inactive_command BIT
|
|
, IN a_ids_command TEXT
|
|
, IN a_get_all_understanding_level BIT
|
|
, IN a_get_inactive_understanding_level BIT
|
|
, IN a_ids_understanding_level TEXT
|
|
, IN a_get_all_obedience_level BIT
|
|
, IN a_get_inactive_obedience_level BIT
|
|
, IN a_ids_obedience_level TEXT
|
|
, IN a_debug BIT
|
|
)
|
|
BEGIN
|
|
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
|
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
|
DECLARE v_id_type_error_bad_data INT;
|
|
DECLARE v_id_type_error_no_permission INT;
|
|
DECLARE v_has_filter_command BIT;
|
|
DECLARE v_has_filter_dog BIT;
|
|
DECLARE v_has_filter_obedience_level BIT;
|
|
DECLARE v_has_filter_understanding_level BIT;
|
|
DECLARE v_guid BINARY(36);
|
|
DECLARE v_id_permission_dog_view INT;
|
|
DECLARE v_id_minimum INT;
|
|
DECLARE v_time_start TIMESTAMP(6);
|
|
DECLARE v_can_view BIT;
|
|
|
|
DECLARE exit handler for SQLEXCEPTION
|
|
BEGIN
|
|
GET DIAGNOSTICS CONDITION 1
|
|
@sqlstate = RETURNED_SQLSTATE
|
|
, @errno = MYSQL_ERRNO
|
|
, @text = MESSAGE_TEXT
|
|
;
|
|
|
|
ROLLBACK;
|
|
|
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_type INT NULL
|
|
, code VARCHAR(100) NOT NULL
|
|
, msg VARCHAR(4000) NOT NULL
|
|
);
|
|
|
|
INSERT INTO tmp_Msg_Error (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
SELECT
|
|
MET.id_type
|
|
, @errno
|
|
, @text
|
|
FROM parts.CORE_Msg_Error_Type MET
|
|
WHERE MET.code = 'MYSQL_ERROR'
|
|
;
|
|
|
|
SELECT
|
|
t_ERROR.id_error
|
|
, t_ERROR.id_type
|
|
, t_ERROR.code
|
|
, ERROR_TYPE.name
|
|
, ERROR_TYPE.description
|
|
, ERROR_TYPE.is_breaking_error
|
|
, ERROR_TYPE.background_colour
|
|
, ERROR_TYPE.text_colour
|
|
, t_ERROR.msg
|
|
FROM tmp_Msg_Error t_ERROR
|
|
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
|
;
|
|
|
|
DROP TABLE IF EXISTS tmp_Msg_Error;
|
|
END;
|
|
|
|
SET v_time_start := CURRENT_TIMESTAMP(6);
|
|
SET v_guid := UUID();
|
|
SET v_code_type_error_bad_data := 'BAD_DATA';
|
|
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
|
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
|
|
|
SET a_id_user := IFNULL(a_id_user, 0);
|
|
SET a_get_all_dog := IFNULL(a_get_all_dog, 0);
|
|
SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
|
|
SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
|
|
SET a_get_all_command := IFNULL(a_get_all_command, 0);
|
|
SET a_get_inactive_command := IFNULL(a_get_inactive_command, 0);
|
|
SET a_ids_command := TRIM(IFNULL(a_ids_command, ''));
|
|
SET a_get_all_understanding_level := IFNULL(a_get_all_understanding_level, 0);
|
|
SET a_get_inactive_understanding_level := IFNULL(a_get_inactive_understanding_level, 0);
|
|
SET a_ids_understanding_level := TRIM(IFNULL(a_ids_understanding_level, ''));
|
|
SET a_get_all_obedience_level := IFNULL(a_get_all_obedience_level, 0);
|
|
SET a_get_inactive_obedience_level := IFNULL(a_get_inactive_obedience_level, 0);
|
|
SET a_ids_obedience_level := TRIM(IFNULL(a_ids_obedience_level, ''));
|
|
SET a_debug := IFNULL(a_debug, 0);
|
|
|
|
IF a_debug = 1 THEN
|
|
SELECT
|
|
a_id_user
|
|
, a_get_all_dog
|
|
, a_get_inactive_dog
|
|
, a_ids_dog
|
|
, a_get_all_command
|
|
, a_get_inactive_command
|
|
, a_ids_command
|
|
, a_get_all_understanding_level
|
|
, a_get_inactive_understanding_level
|
|
, a_ids_understanding_level
|
|
, a_get_all_obedience_level
|
|
, a_get_inactive_obedience_level
|
|
, a_ids_obedience_level
|
|
, a_debug
|
|
;
|
|
|
|
SELECT
|
|
v_id_type_error_bad_data
|
|
, v_id_type_error_no_permission
|
|
, v_guid
|
|
, v_id_permission_dog_view
|
|
, v_time_start
|
|
;
|
|
END IF;
|
|
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split;
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level;
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_Understanding_Level;
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
|
|
|
|
CREATE TEMPORARY TABLE tmp_Dog (
|
|
id_dog INT NOT NULL
|
|
, name VARCHAR(250)
|
|
);
|
|
|
|
CREATE TEMPORARY TABLE tmp_Command (
|
|
id_command INT NOT NULL
|
|
-- , code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
);
|
|
|
|
CREATE TEMPORARY TABLE tmp_Understanding_Level (
|
|
id_understanding_level INT NOT NULL
|
|
, code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
);
|
|
|
|
CREATE TEMPORARY TABLE tmp_Obedience_Level (
|
|
id_obedience_level INT NOT NULL
|
|
, code VARCHAR(100)
|
|
, name VARCHAR(250)
|
|
);
|
|
|
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
|
, id_type INT NULL
|
|
, code VARCHAR(100) NOT NULL
|
|
, msg VARCHAR(4000) NOT NULL
|
|
);
|
|
|
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split (
|
|
substring VARCHAR(4000) NOT NULL
|
|
, as_int INT NULL
|
|
);
|
|
DELETE FROM tmp_Split;
|
|
|
|
CALL parts.p_core_validate_guid ( v_guid );
|
|
|
|
SET v_has_filter_dog = CASE WHEN a_ids_dog = '' THEN 0 ELSE 1 END;
|
|
SET v_has_filter_command = CASE WHEN a_ids_command = '' THEN 0 ELSE 1 END;
|
|
SET v_has_filter_understanding_level = CASE WHEN a_ids_understanding_level = '' THEN 0 ELSE 1 END;
|
|
SET v_has_filter_obedience_level = CASE WHEN a_ids_obedience_level = '' THEN 0 ELSE 1 END;
|
|
|
|
-- Dogs
|
|
IF v_has_filter_dog = 1 THEN
|
|
CALL parts.p_split(v_guid, a_ids_dog, ',', a_debug);
|
|
|
|
INSERT INTO tmp_Split (
|
|
substring
|
|
, as_int
|
|
)
|
|
SELECT
|
|
SPLIT_T.substring
|
|
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
|
FROM parts.CORE_Split_Temp SPLIT_T
|
|
WHERE
|
|
SPLIT_T.GUID = v_guid
|
|
AND IFNULL(SPLIT_T.substring, '') <> ''
|
|
;
|
|
|
|
CALL parts.p_clear_split_temp( v_guid );
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
|
IF EXISTS (
|
|
SELECT *
|
|
FROM tmp_Split t_SPLIT
|
|
LEFT JOIN parts.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
|
|
WHERE
|
|
ISNULL(t_SPLIT.as_int)
|
|
OR ISNULL(DOG.id_dog)
|
|
OR (
|
|
DOG.active = 0
|
|
AND a_get_inactive_dog = 0
|
|
)
|
|
) THEN
|
|
INSERT INTO tmp_Msg_Error (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
SELECT
|
|
v_id_type_error_bad_data
|
|
, v_code_type_error_bad_data
|
|
, CONCAT('Invalid or inactive Dog IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
|
|
FROM tmp_Split t_SPLIT
|
|
LEFT JOIN parts.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
|
|
WHERE
|
|
ISNULL(t_SPLIT.as_int)
|
|
OR ISNULL(DOG.id_dog)
|
|
OR (
|
|
DOG.active = 0
|
|
AND a_get_inactive_dog = 0
|
|
)
|
|
;
|
|
ELSE
|
|
INSERT INTO tmp_Dog (
|
|
id_dog
|
|
, name
|
|
)
|
|
SELECT
|
|
DOG.id_dog
|
|
, DOG.name
|
|
FROM tmp_Split t_SPLIT
|
|
RIGHT JOIN parts.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
|
|
WHERE
|
|
(
|
|
a_get_all_dog = 1
|
|
OR (
|
|
v_has_filter_dog = 1
|
|
AND NOT ISNULL(t_SPLIT.as_int)
|
|
)
|
|
)
|
|
AND (
|
|
a_get_inactive_dog = 1
|
|
OR DOG.active = 1
|
|
)
|
|
;
|
|
END IF;
|
|
END IF;
|
|
|
|
DELETE FROM tmp_Split;
|
|
|
|
-- Commands
|
|
IF v_has_filter_command = 1 THEN
|
|
CALL parts.p_split(v_guid, a_ids_command, ',', a_debug);
|
|
|
|
INSERT INTO tmp_Split (
|
|
substring
|
|
, as_int
|
|
)
|
|
SELECT
|
|
substring
|
|
, CONVERT(substring, DECIMAL(10,0)) AS as_int
|
|
FROM parts.CORE_Split_Temp
|
|
WHERE
|
|
GUID = v_guid
|
|
AND NOT ISNULL(substring)
|
|
AND substring <> ''
|
|
;
|
|
|
|
CALL parts.p_clear_split_temp( v_guid );
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
|
IF EXISTS (
|
|
SELECT *
|
|
FROM tmp_Split t_SPLIT
|
|
LEFT JOIN parts.DOG_Command COMMAND ON t_SPLIT.as_int = COMMAND.id_command
|
|
WHERE
|
|
ISNULL(t_SPLIT.as_int)
|
|
OR ISNULL(COMMAND.id_command)
|
|
OR (
|
|
COMMAND.active = 0
|
|
AND a_get_inactive_command = 0
|
|
)
|
|
) THEN
|
|
INSERT INTO tmp_Msg_Error (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
SELECT
|
|
v_id_type_error_bad_data
|
|
, v_code_type_error_bad_data
|
|
, CONCAT('Invalid or inactive Command IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
|
|
FROM tmp_Split t_SPLIT
|
|
LEFT JOIN parts.DOG_Command COMMAND ON t_SPLIT.as_int = COMMAND.id_command
|
|
WHERE
|
|
ISNULL(t_SPLIT.as_int)
|
|
OR ISNULL(COMMAND.id_command)
|
|
OR (
|
|
COMMAND.active = 0
|
|
AND a_get_inactive_command = 0
|
|
)
|
|
;
|
|
ELSE
|
|
INSERT INTO tmp_Command (
|
|
id_command
|
|
, name
|
|
)
|
|
SELECT
|
|
COMMAND.id_command
|
|
-- , COMMAND.code
|
|
, COMMAND.name
|
|
FROM tmp_Split t_SPLIT
|
|
RIGHT JOIN parts.DOG_Command COMMAND ON t_SPLIT.as_int = COMMAND.id_command
|
|
WHERE
|
|
(
|
|
a_get_all_command = 1
|
|
OR (
|
|
v_has_filter_command = 1
|
|
AND NOT ISNULL(t_SPLIT.as_int)
|
|
)
|
|
)
|
|
AND (
|
|
a_get_inactive_command = 1
|
|
OR COMMAND.active = 1
|
|
)
|
|
;
|
|
END IF;
|
|
END IF;
|
|
|
|
DELETE FROM tmp_Split;
|
|
|
|
-- Understanding Levels
|
|
IF v_has_filter_understanding_level = 1 THEN
|
|
CALL parts.p_split(v_guid, a_ids_understanding_level, ',', a_debug);
|
|
|
|
INSERT INTO tmp_Split (
|
|
substring
|
|
, as_int
|
|
)
|
|
SELECT
|
|
substring
|
|
, CONVERT(substring, DECIMAL(10,0)) AS as_int
|
|
FROM parts.CORE_Split_Temp
|
|
WHERE
|
|
GUID = v_guid
|
|
AND NOT ISNULL(substring)
|
|
AND substring <> ''
|
|
;
|
|
|
|
CALL parts.p_clear_split_temp( v_guid );
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
|
IF EXISTS (
|
|
SELECT *
|
|
FROM tmp_Split t_SPLIT
|
|
LEFT JOIN parts.DOG_Understanding_Level UNDERSTANDING_LEVEL ON t_SPLIT.as_int = UNDERSTANDING_LEVEL.id_understanding_level
|
|
WHERE
|
|
ISNULL(t_SPLIT.as_int)
|
|
OR ISNULL(UNDERSTANDING_LEVEL.id_understanding_level)
|
|
OR (
|
|
UNDERSTANDING_LEVEL.active = 0
|
|
AND a_get_inactive_understanding_level = 0
|
|
)
|
|
) THEN
|
|
INSERT INTO tmp_Msg_Error (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
SELECT
|
|
v_id_type_error_bad_data
|
|
, v_code_type_error_bad_data
|
|
, CONCAT('Invalid or inactive Understanding Level IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
|
|
FROM tmp_Split t_SPLIT
|
|
LEFT JOIN parts.DOG_Understanding_Level UNDERSTANDING_LEVEL ON t_SPLIT.as_int = UNDERSTANDING_LEVEL.id_understanding_level
|
|
WHERE
|
|
ISNULL(t_SPLIT.as_int)
|
|
OR ISNULL(UNDERSTANDING_LEVEL.id_understanding_level)
|
|
OR (
|
|
UNDERSTANDING_LEVEL.active = 0
|
|
AND a_get_inactive_understanding_level = 0
|
|
)
|
|
;
|
|
ELSE
|
|
INSERT INTO tmp_Understanding_Level (
|
|
id_understanding_level
|
|
, code
|
|
, name
|
|
)
|
|
SELECT
|
|
UNDERSTANDING_LEVEL.id_understanding_level
|
|
, UNDERSTANDING_LEVEL.code
|
|
, UNDERSTANDING_LEVEL.name
|
|
FROM tmp_Split t_SPLIT
|
|
RIGHT JOIN parts.DOG_Understanding_Level UNDERSTANDING_LEVEL ON t_SPLIT.as_int = UNDERSTANDING_LEVEL.id_understanding_level
|
|
WHERE
|
|
(
|
|
a_get_all_understanding_level = 1
|
|
OR (
|
|
v_has_filter_understanding_level = 1
|
|
AND NOT ISNULL(t_SPLIT.as_int)
|
|
)
|
|
)
|
|
AND (
|
|
a_get_inactive_understanding_level = 1
|
|
OR UNDERSTANDING_LEVEL.active = 1
|
|
)
|
|
;
|
|
END IF;
|
|
END IF;
|
|
|
|
DELETE FROM tmp_Split;
|
|
|
|
-- Obedience Levels
|
|
IF v_has_filter_obedience_level = 1 THEN
|
|
CALL parts.p_split(v_guid, a_ids_obedience_level, ',', a_debug);
|
|
|
|
INSERT INTO tmp_Split (
|
|
substring
|
|
, as_int
|
|
)
|
|
SELECT
|
|
substring
|
|
, CONVERT(substring, DECIMAL(10,0)) AS as_int
|
|
FROM parts.CORE_Split_Temp
|
|
WHERE
|
|
GUID = v_guid
|
|
AND NOT ISNULL(substring)
|
|
AND substring <> ''
|
|
;
|
|
|
|
CALL parts.p_clear_split_temp( v_guid );
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
|
IF EXISTS (
|
|
SELECT *
|
|
FROM tmp_Split t_SPLIT
|
|
LEFT JOIN parts.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_SPLIT.as_int = OBEDIENCE_LEVEL.id_obedience_level
|
|
WHERE
|
|
ISNULL(t_SPLIT.as_int)
|
|
OR ISNULL(OBEDIENCE_LEVEL.id_obedience_level)
|
|
OR (
|
|
OBEDIENCE_LEVEL.active = 0
|
|
AND a_get_inactive_obedience_level = 0
|
|
)
|
|
) THEN
|
|
INSERT INTO tmp_Msg_Error (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
SELECT
|
|
v_id_type_error_bad_data
|
|
, v_code_type_error_bad_data
|
|
, CONCAT('Invalid or inactive Obedience Level IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
|
|
FROM tmp_Split t_SPLIT
|
|
LEFT JOIN parts.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_SPLIT.as_int = OBEDIENCE_LEVEL.id_obedience_level
|
|
WHERE
|
|
ISNULL(t_SPLIT.as_int)
|
|
OR ISNULL(OBEDIENCE_LEVEL.id_obedience_level)
|
|
OR (
|
|
OBEDIENCE_LEVEL.active = 0
|
|
AND a_get_inactive_obedience_level = 0
|
|
)
|
|
;
|
|
ELSE
|
|
INSERT INTO tmp_Obedience_Level (
|
|
id_obedience_level
|
|
, code
|
|
, name
|
|
)
|
|
SELECT
|
|
OBEDIENCE_LEVEL.id_obedience_level
|
|
, OBEDIENCE_LEVEL.code
|
|
, OBEDIENCE_LEVEL.name
|
|
FROM tmp_Split t_SPLIT
|
|
RIGHT JOIN parts.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_SPLIT.as_int = OBEDIENCE_LEVEL.id_obedience_level
|
|
WHERE
|
|
(
|
|
a_get_all_obedience_level = 1
|
|
OR (
|
|
v_has_filter_obedience_level = 1
|
|
AND NOT ISNULL(t_SPLIT.as_int)
|
|
)
|
|
)
|
|
AND (
|
|
a_get_inactive_obedience_level = 1
|
|
OR OBEDIENCE_LEVEL.active = 1
|
|
)
|
|
;
|
|
END IF;
|
|
END IF;
|
|
|
|
DELETE FROM tmp_Split;
|
|
|
|
|
|
-- Permissions
|
|
IF a_debug = 1 THEN
|
|
SELECT
|
|
v_guid
|
|
, a_id_user
|
|
, FALSE -- a_get_inactive_user
|
|
, v_id_permission_dog_view
|
|
, 0 -- a_debug
|
|
;
|
|
END IF;
|
|
|
|
CALL parts.p_DOG_calc_user(
|
|
v_guid
|
|
, a_id_user
|
|
, FALSE -- a_get_inactive_user
|
|
, v_id_permission_dog_view
|
|
, 0 -- a_debug
|
|
);
|
|
|
|
SELECT
|
|
IFNULL(CALC_USER_T.has_access, 0)
|
|
INTO
|
|
v_can_view
|
|
FROM parts.DOG_Calc_User_Temp CALC_USER_T
|
|
WHERE CALC_USER_T.GUID = v_guid
|
|
LIMIT 1
|
|
;
|
|
|
|
IF a_debug = 1 THEN
|
|
SELECT v_can_view;
|
|
END IF;
|
|
|
|
IF (v_can_view = 0) THEN
|
|
DELETE t_ME
|
|
FROM tmp_Msg_Error t_ME
|
|
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
|
;
|
|
INSERT INTO tmp_Msg_Error (
|
|
id_type
|
|
, code
|
|
, msg
|
|
)
|
|
VALUES (
|
|
v_id_type_error_no_permission
|
|
, v_code_type_error_no_permission
|
|
, 'You do not have permission to view Commands.'
|
|
)
|
|
;
|
|
END IF;
|
|
|
|
CALL parts.p_DOG_clear_calc_user(
|
|
v_guid
|
|
, 0 -- a_debug
|
|
);
|
|
|
|
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
|
IF a_debug = 1 THEN
|
|
SELECT * FROM tmp_Dog;
|
|
SELECT * FROM tmp_Command;
|
|
SELECT * FROM tmp_Obedience_Level;
|
|
END IF;
|
|
|
|
DELETE FROM tmp_Dog;
|
|
DELETE FROM tmp_Command;
|
|
SELECT * FROM tmp_Understanding_Level;
|
|
DELETE FROM tmp_Obedience_Level;
|
|
END IF;
|
|
|
|
-- Outputs
|
|
-- Commands
|
|
SELECT
|
|
DOG_COMMAND_LINK.id_link AS id_dog_command_link
|
|
, t_DOG.id_dog
|
|
, t_DOG.name
|
|
, t_COMMAND.id_command
|
|
-- , t_COMMAND.code
|
|
, t_COMMAND.name
|
|
, t_UNDERSTANDING_LEVEL.id_understanding_level
|
|
, t_UNDERSTANDING_LEVEL.code AS code_understanding_level
|
|
, t_UNDERSTANDING_LEVEL.name AS name_understanding_level
|
|
, t_OBEDIENCE_LEVEL.id_obedience_level
|
|
, t_OBEDIENCE_LEVEL.code AS code_obedience_level
|
|
, t_OBEDIENCE_LEVEL.name AS name_obedience_level
|
|
, DOG_COMMAND_LINK.active
|
|
FROM parts.DOG_Dog_Command_Link DOG_COMMAND_LINK
|
|
INNER JOIN tmp_Dog t_DOG ON DOG_COMMAND_LINK.id_dog = t_DOG.id_dog
|
|
INNER JOIN tmp_Command t_COMMAND ON DOG_COMMAND_LINK.id_command = t_COMMAND.id_command
|
|
INNER JOIN tmp_Understanding_Level t_UNDERSTANDING_LEVEL ON DOG_COMMAND_LINK.id_understanding_level = t_UNDERSTANDING_LEVEL.id_understanding_level
|
|
INNER JOIN tmp_Obedience_Level t_OBEDIENCE_LEVEL ON DOG_COMMAND_LINK.id_obedience_level = t_OBEDIENCE_LEVEL.id_obedience_level
|
|
;
|
|
|
|
-- Errors
|
|
SELECT
|
|
t_ERROR.id_error
|
|
, t_ERROR.id_type
|
|
, t_ERROR.code
|
|
, ERROR_TYPE.name
|
|
, ERROR_TYPE.description
|
|
, ERROR_TYPE.is_breaking_error
|
|
, ERROR_TYPE.background_colour
|
|
, ERROR_TYPE.text_colour
|
|
, t_ERROR.msg
|
|
FROM tmp_Msg_Error t_ERROR
|
|
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
|
;
|
|
|
|
IF a_debug = 1 AND v_can_view = 1 THEN
|
|
SELECT * FROM tmp_Dog;
|
|
SELECT * FROM tmp_Command;
|
|
SELECT * FROM tmp_Understanding_Level;
|
|
SELECT * FROM tmp_Obedience_Level;
|
|
END IF;
|
|
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split;
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level;
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_Understanding_Level;
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
|
|
|
|
IF a_debug = 1 THEN
|
|
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
/*
|
|
|
|
CALL parts.p_DOG_get_many_dog_command (
|
|
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
|
, 1 -- a_get_all_dog
|
|
, 0 -- a_get_inactive_dog
|
|
, '' -- a_ids_dog
|
|
, 1 -- a_get_all_command
|
|
, 0 -- a_get_inactive_command
|
|
, '' -- a_ids_command
|
|
, 1 -- a_get_all_understanding_level
|
|
, 0 -- a_get_inactive_understanding_level
|
|
, '' -- a_ids_understanding_level
|
|
, 1 -- a_get_all_obedience_level
|
|
, 0 -- a_get_inactive_obedience_level
|
|
, '' -- a_ids_obedience_level
|
|
, 1 -- a_debug
|
|
);
|
|
|
|
*/
|
|
USE parts;
|
|
|
|
|
|
-- Error Message Types
|
|
/* Existing table */
|
|
INSERT INTO parts.CORE_Msg_Error_Type (
|
|
code
|
|
, name
|
|
, description
|
|
, is_breaking_error
|
|
)
|
|
VALUES
|
|
(
|
|
'BAD_DATA'
|
|
, 'Invalid data'
|
|
, 'Rubbish data'
|
|
, 1
|
|
)
|
|
, (
|
|
'NO_PERMISSION'
|
|
, 'No permission'
|
|
, 'Not authorised'
|
|
, 1
|
|
)
|
|
, (
|
|
'MYSQL_ERROR'
|
|
, 'MySQL error'
|
|
, 'MySQL execution error.'
|
|
, 1
|
|
)
|
|
, (
|
|
'WARNING'
|
|
, 'Warning'
|
|
, 'Non-breaking error.'
|
|
, 0
|
|
)
|
|
;
|
|
|
|
INSERT INTO parts.CORE_File_Type (
|
|
code
|
|
, name
|
|
, is_image
|
|
)
|
|
VALUES
|
|
(
|
|
'JPG'
|
|
, 'JPG'
|
|
, 1
|
|
)
|
|
;
|
|
|
|
-- Access Levels
|
|
INSERT INTO parts.DOG_Access_Level (
|
|
display_order
|
|
, code
|
|
, name
|
|
, priority
|
|
)
|
|
VALUES
|
|
(
|
|
1
|
|
, 'VIEW'
|
|
, 'View'
|
|
, 3
|
|
)
|
|
, (
|
|
2
|
|
, 'EDIT'
|
|
, 'Edit'
|
|
, 2
|
|
)
|
|
, (
|
|
3
|
|
, 'ADMIN'
|
|
, 'Admin'
|
|
, 1
|
|
)
|
|
;
|
|
|
|
-- Permission Groups
|
|
INSERT INTO parts.DOG_Permission_Group (
|
|
display_order
|
|
, code
|
|
, name
|
|
)
|
|
VALUES
|
|
(
|
|
0
|
|
, 'DOG'
|
|
, 'Dog'
|
|
)
|
|
, (
|
|
1
|
|
, 'USER'
|
|
, 'Admin User'
|
|
)
|
|
;
|
|
|
|
-- Permissions
|
|
INSERT INTO parts.DOG_Permission (
|
|
display_order
|
|
, code
|
|
, name
|
|
, id_permission_group
|
|
, id_access_level_required
|
|
)
|
|
VALUES
|
|
(
|
|
1
|
|
, 'DOG_VIEW'
|
|
, 'View Dog'
|
|
, 1
|
|
, 3
|
|
)
|
|
, (
|
|
1
|
|
, 'DOG_ADMIN'
|
|
, 'Admin Dog'
|
|
, 1
|
|
, 3
|
|
)
|
|
, (
|
|
1
|
|
, 'DOG_CREATE'
|
|
, 'Create Dog'
|
|
, 1
|
|
, 1
|
|
)
|
|
;
|
|
|
|
-- Users
|
|
INSERT INTO parts.DOG_User (
|
|
id_user_auth0
|
|
, firstname
|
|
, surname
|
|
, email
|
|
, is_super_user
|
|
, active
|
|
)
|
|
VALUES
|
|
(
|
|
'auth0|6582b95c895d09a70ba10fef' -- id_user_auth0
|
|
, 'Teddy' -- firstname
|
|
, 'Middleton-Smith' -- surname
|
|
, 'edward.middletonsmith@gmail.com' -- email
|
|
, 1 -- is_super_user
|
|
, 1 -- active
|
|
)
|
|
, (
|
|
'auth0|672659014296b7f94a9bab45' -- id_user_auth0
|
|
, 'Tierney' -- firstname
|
|
, 'Gullen' -- surname
|
|
, 'tierneybailey13@gmail.com' -- email
|
|
, 1 -- is_super_user
|
|
, 1 -- active
|
|
)
|
|
, (
|
|
NULL -- id_user_auth0
|
|
, 'Command Bot' -- firstname
|
|
, 'Bot' -- surname
|
|
, 'teddy@partsltd.co.uk' -- email
|
|
, 0 -- is_super_user
|
|
, 1 -- active
|
|
)
|
|
;
|
|
|
|
-- Roles
|
|
INSERT INTO parts.DOG_Role (
|
|
display_order
|
|
, code
|
|
, name
|
|
, id_user_created_by
|
|
)
|
|
VALUES
|
|
(
|
|
1
|
|
, 'MANAGER'
|
|
, 'Manager'
|
|
, 1
|
|
)
|
|
, (
|
|
2
|
|
, 'USER'
|
|
, 'User'
|
|
, 1
|
|
)
|
|
;
|
|
|
|
-- Role Permission link
|
|
INSERT INTO parts.DOG_Role_Permission_Link (
|
|
id_role
|
|
, id_permission
|
|
, id_access_level
|
|
, id_user_created_by
|
|
)
|
|
VALUES
|
|
(
|
|
1
|
|
, 1
|
|
, 3
|
|
, 1
|
|
)
|
|
, (
|
|
1
|
|
, 2
|
|
, 3
|
|
, 1
|
|
)
|
|
, (
|
|
1
|
|
, 3
|
|
, 3
|
|
, 1
|
|
)
|
|
, (
|
|
2
|
|
, 1
|
|
, 1
|
|
, 1
|
|
)
|
|
, (
|
|
2
|
|
, 2
|
|
, 1
|
|
, 1
|
|
)
|
|
, (
|
|
2
|
|
, 3
|
|
, 1
|
|
, 1
|
|
)
|
|
;
|
|
|
|
-- User Role link
|
|
INSERT INTO parts.DOG_User_Role_Link (
|
|
id_user
|
|
, id_role
|
|
, id_user_created_by
|
|
)
|
|
VALUES
|
|
(
|
|
1
|
|
, 1
|
|
, 1
|
|
)
|
|
, (
|
|
2
|
|
, 2
|
|
, 1
|
|
)
|
|
, (
|
|
3
|
|
, 2
|
|
, 1
|
|
)
|
|
;
|
|
|
|
-- Project-specific tables
|
|
INSERT INTO parts.DOG_Dog (
|
|
name
|
|
, appearance
|
|
, mass_kg
|
|
)
|
|
VALUES
|
|
(
|
|
'Molly'
|
|
, 'Cute'
|
|
, 20
|
|
)
|
|
;
|
|
|
|
INSERT INTO parts.DOG_Breed (
|
|
code
|
|
, name
|
|
)
|
|
VALUES
|
|
(
|
|
'BORDER_COLLIE'
|
|
, 'Border Collie'
|
|
)
|
|
;
|
|
|
|
INSERT INTO parts.DOG_Dog_Breed_Link (
|
|
id_dog
|
|
, id_breed
|
|
, lineage_ratio
|
|
)
|
|
VALUES
|
|
(
|
|
1
|
|
, 1
|
|
, 1
|
|
)
|
|
;
|
|
|
|
INSERT INTO parts.DOG_Understanding_Level (
|
|
code
|
|
, name
|
|
)
|
|
VALUES
|
|
(
|
|
'UNKNOWN'
|
|
, 'Not known'
|
|
)
|
|
, (
|
|
'INTRODUCED'
|
|
, 'Has been introduced'
|
|
)
|
|
, (
|
|
'RECOGNISES_COMBINED_VISUAL_AND_VERBAL_SIGNAL'
|
|
, 'Combined visual and verbal signal recognised'
|
|
)
|
|
, (
|
|
'RECOGNISES_VISUAL_SIGNAL'
|
|
, 'Visual signal alone recognised'
|
|
)
|
|
, (
|
|
'RECOGNISES_VERBAL_SIGNAL'
|
|
, 'Verbal signal alone recognised'
|
|
)
|
|
, (
|
|
'UNDERSTOOD'
|
|
, 'Understood'
|
|
)
|
|
;
|
|
|
|
INSERT INTO parts.DOG_Obedience_Level (
|
|
code
|
|
, name
|
|
)
|
|
VALUES
|
|
(
|
|
'REFUSAL'
|
|
, 'Refuses to obey'
|
|
)
|
|
, (
|
|
'ON_HER_TERMS'
|
|
, 'Might obey if she feels like it'
|
|
)
|
|
, (
|
|
'OBEYS_UNDISTRACTED'
|
|
, 'Obeys without distractions'
|
|
)
|
|
, (
|
|
'OBEYS_MILDLY_DISTRACTED'
|
|
, 'Obeys when mildly distracted'
|
|
)
|
|
, (
|
|
'OBEYS_PERFECTLY'
|
|
, 'Obeys in all situations'
|
|
)
|
|
;
|
|
|
|
INSERT INTO parts.DOG_Command_Category (
|
|
code
|
|
, name
|
|
)
|
|
VALUES
|
|
(
|
|
'ACTIVITIES'
|
|
, 'Activities'
|
|
)
|
|
, (
|
|
'BASIC_OBEDIENCE'
|
|
, 'Basic obedience'
|
|
)
|
|
, (
|
|
'BEHAVIOUR_MODIFICATION'
|
|
, 'Behaviour modification'
|
|
)
|
|
, (
|
|
'BODY_PARTS'
|
|
, 'Body parts'
|
|
)
|
|
, (
|
|
'CLOTHING_AND_EQUIPMENT'
|
|
, 'Clothing and equipment'
|
|
)
|
|
, (
|
|
'COMPARISON'
|
|
, 'Comparison'
|
|
)
|
|
, (
|
|
'ADJECTIVES'
|
|
, 'Compliments and insults (adjectives)'
|
|
)
|
|
, (
|
|
'EMOTIONAL_STATE'
|
|
, 'Emotional state'
|
|
)
|
|
, (
|
|
'ENVIRONMENT'
|
|
, 'Environment'
|
|
)
|
|
, (
|
|
'ESSENTIAL_NEEDS'
|
|
, 'Essential needs'
|
|
)
|
|
, (
|
|
'IMPULSE_CONTROL'
|
|
, 'Impulse control'
|
|
)
|
|
, (
|
|
'LOCATION'
|
|
, 'Location'
|
|
)
|
|
, (
|
|
'MANNERS'
|
|
, 'Manners'
|
|
)
|
|
, (
|
|
'MEALTIME'
|
|
, 'Mealtime'
|
|
)
|
|
, (
|
|
'PARTY_TRICK'
|
|
, 'Party trick'
|
|
)
|
|
, (
|
|
'PEOPLE'
|
|
, 'People'
|
|
)
|
|
, (
|
|
'PLAY'
|
|
, 'Play'
|
|
)
|
|
, (
|
|
'POSITION'
|
|
, 'Position'
|
|
)
|
|
, (
|
|
'QUESTIONS'
|
|
, 'Questions'
|
|
)
|
|
, (
|
|
'SERVICE'
|
|
, 'Service'
|
|
)
|
|
, (
|
|
'TIME_AND_SCHEDULING'
|
|
, 'Time and scheduling'
|
|
)
|
|
, (
|
|
'UTILITY'
|
|
, 'Utility'
|
|
)
|
|
;
|
|
|
|
/*
|
|
INSERT INTO parts.DOG_Command (
|
|
code
|
|
, name
|
|
)
|
|
VALUES
|
|
(
|
|
'lick'
|
|
, 'nips'
|
|
)
|
|
;
|
|
*/
|
|
|
|
/*
|
|
INSERT INTO parts.DOG_Dog_Command_Link (
|
|
id_dog
|
|
, id_command
|
|
, id_understanding_level
|
|
, id_obedience_level
|
|
, notes
|
|
)
|
|
VALUES
|
|
(
|
|
'lick'
|
|
, 'nips'
|
|
)
|
|
;
|
|
*/
|
|
|
|
INSERT INTO parts.DOG_Location (
|
|
code
|
|
, name
|
|
)
|
|
VALUES
|
|
(
|
|
'LOUNGE'
|
|
, 'Lounge'
|
|
)
|
|
;
|
|
|
|
/*
|
|
INSERT INTO parts.DOG_Location_Link (
|
|
id_location_parent
|
|
, id_location_child
|
|
)
|
|
VALUES
|
|
(
|
|
1
|
|
, 2
|
|
)
|
|
;
|
|
*/
|
|
|
|
INSERT INTO parts.DOG_Colour (
|
|
code
|
|
, name
|
|
)
|
|
VALUES
|
|
(
|
|
'RED'
|
|
, 'Red'
|
|
)
|
|
, (
|
|
'GREEN'
|
|
, 'Green'
|
|
)
|
|
;
|
|
|
|
INSERT INTO parts.DOG_Button_Shape (
|
|
code
|
|
, name
|
|
, description
|
|
)
|
|
VALUES
|
|
(
|
|
'ROUND'
|
|
, 'Round'
|
|
, 'Cylindrical'
|
|
)
|
|
, (
|
|
'HEXAGONAL'
|
|
, 'Hexagonal'
|
|
, 'Hexagonal prism'
|
|
)
|
|
;
|
|
|
|
/*
|
|
INSERT INTO parts.DOG_Image (
|
|
id_file_type
|
|
, id_dog
|
|
, path
|
|
, display_order
|
|
)
|
|
VALUES
|
|
(
|
|
1
|
|
, 1
|
|
, NULL
|
|
, NULL
|
|
)
|
|
;
|
|
*/
|
|
|
|
/*
|
|
INSERT INTO parts.DOG_Button_Icon (
|
|
id_image
|
|
, code
|
|
, name
|
|
, description
|
|
)
|
|
VALUES
|
|
(
|
|
1
|
|
, NULL
|
|
)
|
|
;
|
|
*/
|
|
|
|
/*
|
|
INSERT INTO parts.DOG_Command_Button_Link (
|
|
id_command
|
|
, id_button_shape
|
|
, id_button_colour
|
|
, id_button_icon
|
|
, id_location
|
|
)
|
|
VALUES
|
|
(
|
|
1 -- AS id_command
|
|
, 1 -- AS id_button_shape
|
|
, 1 -- AS id_button_colour
|
|
, NULL -- AS id_button_icon
|
|
, 1 -- AS id_location
|
|
)
|
|
;
|
|
*/
|
|
|
|
INSERT INTO parts.DOG_Drive (
|
|
code
|
|
, name
|
|
)
|
|
VALUES
|
|
(
|
|
'PREY'
|
|
, 'Prey'
|
|
)
|
|
, (
|
|
'PACK'
|
|
, 'Pack'
|
|
)
|
|
;
|
|
|
|
INSERT INTO parts.DOG_Dog_Drive_Link (
|
|
id_dog
|
|
, id_drive
|
|
, dominance_ratio
|
|
)
|
|
VALUES
|
|
(
|
|
1
|
|
, 1
|
|
, 0.5
|
|
)
|
|
, (
|
|
1
|
|
, 2
|
|
, 0.5
|
|
)
|
|
;
|
|
|
|
|
|
|
|
/*
|
|
Post Excel-insert:
|
|
|
|
|
|
SELECT *
|
|
FROM demo.DOG_Dog;
|
|
|
|
/ *
|
|
SELECT *
|
|
FROM demo.DOG_Command;
|
|
* /
|
|
|
|
SELECT *
|
|
-- DELETE
|
|
FROM demo.DOG_Understanding_Level;
|
|
|
|
SELECT *
|
|
-- DELETE
|
|
FROM demo.DOG_Obedience_Level;
|
|
|
|
/ *
|
|
INSERT INTO demo.DOG_Dog_Command_Link (
|
|
id_dog
|
|
, id_command
|
|
, id_understanding_level
|
|
, id_obedience_level
|
|
, notes
|
|
)
|
|
SELECT
|
|
DOG.id_dog
|
|
, COMMAND.id_command
|
|
,
|
|
FROM demo.DOG_Dog DOG
|
|
CROSS JOIN demo.DOG_Command COMMAND
|
|
WHERE DOG.name = 'Molly'
|
|
|
|
* /
|
|
|
|
*/
|
|
|
|
-- Core tables
|
|
-- Error Message type
|
|
SELECT * FROM parts.CORE_Msg_Error_Type;
|
|
|
|
|
|
-- Common project tables
|
|
-- User Change Sets
|
|
SELECT * FROM parts.DOG_User_Change_Set;
|
|
|
|
-- Access Levels
|
|
SELECT * FROM parts.DOG_Access_Level;
|
|
|
|
-- Permission Groups
|
|
SELECT * FROM parts.DOG_Permission_Group;
|
|
|
|
-- Permissions
|
|
SELECT * FROM parts.DOG_Permission;
|
|
|
|
-- Users
|
|
SELECT * FROM parts.DOG_User;
|
|
SELECT * FROM parts.DOG_User_Audit;
|
|
|
|
-- Roles
|
|
SELECT * FROM parts.DOG_Role;
|
|
SELECT * FROM parts.DOG_Role_Audit;
|
|
|
|
-- Role Permission link
|
|
SELECT * FROM parts.DOG_Role_Permission_Link;
|
|
SELECT * FROM parts.DOG_Role_Permission_Link_Audit;
|
|
|
|
-- User Role link
|
|
SELECT * FROM parts.DOG_User_Role_Link;
|
|
SELECT * FROM parts.DOG_User_Role_Link_Audit;
|
|
|
|
|
|
-- Project-specific tables
|
|
-- Command Change Sets
|
|
SELECT * FROM parts.DOG_Dog_Change_Set;
|
|
|
|
-- Commands
|
|
SELECT * FROM parts.DOG_Dog;
|
|
SELECT * FROM parts.DOG_Dog_Audit;
|
|
SELECT * FROM parts.DOG_Dog_Temp;
|
|
|
|
SELECT * FROM parts.DOG_Breed;
|
|
SELECT * FROM parts.DOG_Breed_Audit;
|
|
SELECT * FROM parts.DOG_Breed_Temp;
|
|
|
|
SELECT * FROM parts.DOG_Dog_Breed_Link;
|
|
SELECT * FROM parts.DOG_Dog_Breed_Link_Audit;
|
|
SELECT * FROM parts.DOG_Dog_Breed_Link_Temp;
|
|
|
|
SELECT * FROM parts.DOG_Obedience_Level;
|
|
SELECT * FROM parts.DOG_Obedience_Level_Audit;
|
|
SELECT * FROM parts.DOG_Obedience_Level_Temp;
|
|
|
|
SELECT * FROM parts.DOG_Command_Category;
|
|
SELECT * FROM parts.DOG_Command_Category_Audit;
|
|
SELECT * FROM parts.DOG_Command_Category_Temp;
|
|
|
|
SELECT * FROM parts.DOG_Command;
|
|
SELECT * FROM parts.DOG_Command_Audit;
|
|
SELECT * FROM parts.DOG_Command_Temp;
|
|
|
|
SELECT * FROM parts.DOG_Dog_Command_Link;
|
|
SELECT * FROM parts.DOG_Dog_Command_Link_Audit;
|
|
SELECT * FROM parts.DOG_Dog_Command_Link_Temp;
|
|
|
|
SELECT * FROM parts.DOG_Location;
|
|
SELECT * FROM parts.DOG_Location_Audit;
|
|
SELECT * FROM parts.DOG_Location_Temp;
|
|
|
|
SELECT * FROM parts.DOG_Location_Link;
|
|
SELECT * FROM parts.DOG_Location_Link_Audit;
|
|
SELECT * FROM parts.DOG_Location_Link_Temp;
|
|
|
|
SELECT * FROM parts.DOG_Colour;
|
|
SELECT * FROM parts.DOG_Colour_Audit;
|
|
SELECT * FROM parts.DOG_Colour_Temp;
|
|
|
|
SELECT * FROM parts.DOG_Button_Shape;
|
|
SELECT * FROM parts.DOG_Button_Shape_Audit;
|
|
SELECT * FROM parts.DOG_Button_Shape_Temp;
|
|
|
|
SELECT * FROM parts.DOG_Image;
|
|
SELECT * FROM parts.DOG_Image_Audit;
|
|
SELECT * FROM parts.DOG_Image_Temp;
|
|
|
|
SELECT * FROM parts.DOG_Button_Icon;
|
|
SELECT * FROM parts.DOG_Button_Icon_Audit;
|
|
SELECT * FROM parts.DOG_Button_Icon_Temp;
|
|
|
|
SELECT * FROM parts.DOG_Command_Button_Link;
|
|
SELECT * FROM parts.DOG_Command_Button_Link_Audit;
|
|
SELECT * FROM parts.DOG_Command_Button_Link_Temp;
|
|
|
|
SELECT * FROM parts.DOG_Drive;
|
|
SELECT * FROM parts.DOG_Drive_Audit;
|
|
SELECT * FROM parts.DOG_Drive_Temp;
|
|
|
|
SELECT * FROM parts.DOG_Dog_Drive_Link;
|
|
SELECT * FROM parts.DOG_Dog_Drive_Link_Audit;
|
|
SELECT * FROM parts.DOG_Dog_Drive_Link_Temp;
|
|
|