Procházet zdrojové kódy

add unique key for t_ds_process_definition

张世鸣 před 5 roky
rodič
revize
e988d021cc

+ 2 - 1
sql/dolphinscheduler-postgre.sql

@@ -309,7 +309,8 @@ CREATE TABLE t_ds_process_definition (
   update_time timestamp DEFAULT NULL ,
   modify_by varchar(36) DEFAULT '' ,
   resource_ids varchar(64),
-  PRIMARY KEY (id)
+  PRIMARY KEY (id),
+  CONSTRAINT process_definition_unique UNIQUE (name, project_id)
 ) ;
 
 create index process_definition_index on t_ds_process_definition (project_id,id);

+ 23 - 1
sql/upgrade/1.2.2_schema/mysql/dolphinscheduler_ddl.sql

@@ -59,7 +59,7 @@ DROP PROCEDURE uc_dolphin_T_t_ds_task_instance_A_executor_id;
 -- uc_dolphin_T_t_ds_task_instance_C_app_link
 drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_task_instance_C_app_link;
 delimiter d//
-CREATE PROCEDURE uc_dolphin_T_t_ds_task_instance_C_app_link()
+CREATE PROCEDURE uc_dolphin_T_uc_dolphin_T_t_ds_task_instance_C_app_linkt_ds_task_instance_C_app_link()
    BEGIN
        IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS
            WHERE TABLE_NAME='t_ds_task_instance'
@@ -357,3 +357,25 @@ delimiter ;
 CALL dc_dolphin_T_t_ds_error_command_D_worker_group_id;
 DROP PROCEDURE dc_dolphin_T_t_ds_error_command_D_worker_group_id;
 
+
+-- uc_dolphin_T_t_ds_process_definition_A_process_definition_unique
+drop PROCEDURE if EXISTS uc_dolphin_T_t_ds_process_definition_A_process_definition_unique;
+delimiter d//
+CREATE PROCEDURE uc_dolphin_T_t_ds_process_definition_A_modify_by()
+   BEGIN
+       IF NOT EXISTS (SELECT 1 FROM information_schema.STATISTICS
+           WHERE TABLE_NAME='t_ds_process_definition'
+           AND TABLE_SCHEMA=(SELECT DATABASE())
+           AND INDEX_NAME ='process_definition_unique')
+   THEN
+         ALTER TABLE t_ds_process_definition ADD UNIQUE KEY `process_definition_unique` (`name`,`project_id`);
+       END IF;
+ END;
+
+d//
+
+delimiter ;
+CALL uc_dolphin_T_t_ds_process_definition_A_process_definition_unique;
+DROP PROCEDURE uc_dolphin_T_t_ds_process_definition_A_process_definition_unique;
+
+

+ 17 - 0
sql/upgrade/1.2.2_schema/postgresql/dolphinscheduler_ddl.sql

@@ -363,4 +363,21 @@ delimiter ;
 select dc_dolphin_T_t_ds_error_command_D_worker_group_id();
 DROP FUNCTION dc_dolphin_T_t_ds_error_command_D_worker_group_id();
 
+-- uc_dolphin_T_t_ds_process_definition_A_process_definition_unique
+delimiter d//
+CREATE OR REPLACE FUNCTION uc_dolphin_T_t_ds_process_definition_A_process_definition_unique() RETURNS void AS $$
+BEGIN
+       IF NOT EXISTS (SELECT 1 FROM information_schema.STATISTICS
+          WHERE TABLE_NAME='t_ds_process_definition'
+                            AND INDEX_NAME ='process_definition_unique')
+      THEN
+         ALTER TABLE t_ds_process_definition ADD CONSTRAINT process_definition_unique UNIQUE (name,project_id);
+       END IF;
+END;
+$$ LANGUAGE plpgsql;
+d//
+
+delimiter ;
+SELECT uc_dolphin_T_t_ds_process_definition_A_process_definition_unique();
+DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_process_definition_A_process_definition_unique();