feat:crm_historyの新規追加
This commit is contained in:
parent
f1f7cb6bbf
commit
d5abe856cf
24
rds_mysql/stored_procedure/crm_history.sql
Normal file
24
rds_mysql/stored_procedure/crm_history.sql
Normal file
@ -0,0 +1,24 @@
|
||||
-- A5M2で実行時にSQL区切り文字を「;」以外にすること
|
||||
|
||||
CREATE PROCEDURE crm_history(target_table VARCHAR(255), target_column VARCHAR(255))
|
||||
BEGIN
|
||||
SET @new_history_save = 'UPDATE @@target_table SET start_datetime = @@target_column, end_datetime = "9999-12-31 00:00:00" WHERE start_datetime IS NULL AND end_datetime IS NULL';
|
||||
SET @new_history_save = REPLACE(@new_history_save, "@@target_table", target_table);
|
||||
SET @new_history_save = REPLACE(@new_history_save, "@@target_column", target_column);
|
||||
PREPARE new_history_save_stmt from @new_history_save;
|
||||
EXECUTE new_history_save_stmt;
|
||||
|
||||
SET @make_history_tmp_create = 'CREATE TEMPORARY TABLE make_history_tmp SELECT id, MIN(@@target_column) AS min_start_datetime, MAX(start_datetime) AS max_start_datetime FROM @@target_table WHERE end_datetime = "9999-12-31 00:00:00" GROUP BY id';
|
||||
SET @make_history_tmp_create = REPLACE(@make_history_tmp_create, "@@target_table", target_table);
|
||||
SET @make_history_tmp_create = REPLACE(@make_history_tmp_create, "@@target_column", target_column);
|
||||
PREPARE make_history_tmp_create_stmt from @make_history_tmp_create;
|
||||
EXECUTE make_history_tmp_create_stmt;
|
||||
|
||||
SET @update_end_datetime = 'UPDATE @@target_table tt LEFT JOIN make_history_tmp mht ON tt.id = mht.id AND tt.start_datetime = mht.min_start_datetime SET start_datetime = mht.max_start_datetime - INTERVAL 1 SECOND WHERE mht.id IS NULL';
|
||||
SET @update_end_datetime = REPLACE(@update_end_datetime, "@@target_table", target_table);
|
||||
SET @update_end_datetime = REPLACE(@update_end_datetime, "@@target_column", target_column);
|
||||
PREPARE update_end_datetime_stmt from @update_end_datetime;
|
||||
EXECUTE update_end_datetime_stmt;
|
||||
|
||||
DROP TEMPORARY TABLE make_history_tmp;
|
||||
END
|
||||
Loading…
x
Reference in New Issue
Block a user