refactor:一時テーブル名の変更、細かいミスの修正

This commit is contained in:
y-ono-r 2022-08-01 20:02:29 +09:00 committed by shimoda.m@nds-tyo.co.jp
parent a7b2bb0c85
commit 76cf08ebdd

View File

@ -8,19 +8,19 @@ BEGIN
BEGIN BEGIN
GET DIAGNOSTICS CONDITION 1 GET DIAGNOSTICS CONDITION 1
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT; @error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
EXECUTE drop_tmp_table; EXECUTE drop_tmp_table_stmt;
DEALLOCATE PREPARE drop_tmp_table; DEALLOCATE PREPARE drop_tmp_table_stmt;
SIGNAL SQLSTATE '45000' SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = @error_msg, MYSQL_ERRNO = @error_state; SET MYSQL_ERRNO = @error_state, MESSAGE_TEXT = @error_msg;
END; END;
-- ②-3で利用する一時テーブル削除のSQLを準備 -- ②-3で利用する一時テーブル削除のSQLを準備
-- 例外処理でも利用するため先に記述 -- 例外処理でも利用するため先に記述
SET @drop_tmp_table = ' SET @drop_tmp_table = '
DROP TEMPORARY TABLE IF EXISTS make_history_tmp_$$target_table DROP TEMPORARY TABLE IF EXISTS $$target_table_make_history_tmp
'; ';
SET @drop_tmp_table = REPLACE(@drop_tmp_table, "$$target_table", target_table); SET @drop_tmp_table = REPLACE(@drop_tmp_table, "$$target_table", target_table);
PREPARE new_history_save_stmt from @drop_tmp_table; PREPARE drop_tmp_table_stmt from @drop_tmp_table;
-- ①-1 Salesforce側で更新されたデータの適用開始日時と適用終了日時を設定する -- ①-1 Salesforce側で更新されたデータの適用開始日時と適用終了日時を設定する
SET @new_history_save = ' SET @new_history_save = '
@ -38,11 +38,11 @@ BEGIN
SET @new_history_save = REPLACE(@new_history_save, "$$target_column", target_column); SET @new_history_save = REPLACE(@new_history_save, "$$target_column", target_column);
PREPARE new_history_save_stmt from @new_history_save; PREPARE new_history_save_stmt from @new_history_save;
EXECUTE new_history_save_stmt; EXECUTE new_history_save_stmt;
DEALLOCATE PREPARE ew_history_save_stmt; DEALLOCATE PREPARE new_history_save_stmt;
-- ②-1 Salesforce側で更新されたデータを検出用一時テーブルの作成 -- ②-1 Salesforce側で更新されたデータを検出用一時テーブルの作成
SET @make_history_tmp_create = ' SET @make_history_tmp_create = '
CREATE TEMPORARY TABLE make_history_tmp_$$target_table CREATE TEMPORARY TABLE $$target_table_make_history_tmp
SELECT SELECT
id id
, MIN($$target_column) AS min_start_datetime , MIN($$target_column) AS min_start_datetime
@ -65,7 +65,7 @@ BEGIN
-- ②-2 「②-1」で取得した全件に更新処理を行う -- ②-2 「②-1」で取得した全件に更新処理を行う
SET @update_end_datetime = ' SET @update_end_datetime = '
UPDATE $$target_table tt UPDATE $$target_table tt
LEFT JOIN make_history_tmp_$$target_table mht LEFT JOIN $$target_table_make_history_tmp mht
ON tt.id = mht.id ON tt.id = mht.id
AND tt.start_datetime = mht.min_start_datetime AND tt.start_datetime = mht.min_start_datetime
SET SET
@ -82,7 +82,7 @@ BEGIN
DEALLOCATE PREPARE update_end_datetime_stmt; DEALLOCATE PREPARE update_end_datetime_stmt;
-- ②-3 「②-1」で作成した一時テーブルを削除する -- ②-3 「②-1」で作成した一時テーブルを削除する
EXECUTE drop_tmp_table; EXECUTE drop_tmp_table_stmt;
DEALLOCATE PREPARE drop_tmp_table; DEALLOCATE PREPARE drop_tmp_table_stmt;
END END