fix: レビュー指摘漏れの反映。製品指標はPKが2つあるので、指定して取るようにした
This commit is contained in:
parent
446c457713
commit
d630cccd89
@ -7,16 +7,18 @@ SQL SECURITY INVOKER
|
|||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
-- 振り分けスキーマ
|
-- 振り分けスキーマ
|
||||||
DECLARE distribution_schema VARCHAR(64);
|
DECLARE distribution_schema VARCHAR(20);
|
||||||
-- 振り分けカラム
|
-- 振り分けカラム
|
||||||
DECLARE target_column_value VARCHAR(64);
|
DECLARE target_column_value VARCHAR(100);
|
||||||
-- 振り分け先テーブルID
|
-- 振り分け先テーブルID
|
||||||
DECLARE temp_table_id VARCHAR(18);
|
DECLARE temp_table_id VARCHAR(18);
|
||||||
|
-- 振り分け先テーブルのSystemModstamp
|
||||||
|
DECLARE temp_system_modstamp DATETIME;
|
||||||
-- カーソルフェッチステータス
|
-- カーソルフェッチステータス
|
||||||
DECLARE fetch_done BOOLEAN DEFAULT FALSE;
|
DECLARE fetch_done BOOLEAN DEFAULT FALSE;
|
||||||
|
|
||||||
-- カーソル設定
|
-- カーソル設定
|
||||||
DECLARE table_cursor CURSOR FOR SELECT Id, medaca_parent_msj_product_classification__c FROM internal02.crm_Product_Metrics_vod__c;
|
DECLARE table_cursor CURSOR FOR SELECT Id, SystemModstamp, medaca_parent_msj_product_classification__c FROM internal02.crm_Product_Metrics_vod__c;
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET fetch_done = TRUE;
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET fetch_done = TRUE;
|
||||||
|
|
||||||
-- エラー処理
|
-- エラー処理
|
||||||
@ -68,10 +70,11 @@ SET @upsert_statement_base =
|
|||||||
internal02.crm_Product_Metrics_vod__c AS internaltb
|
internal02.crm_Product_Metrics_vod__c AS internaltb
|
||||||
WHERE
|
WHERE
|
||||||
internaltb.Id = ?
|
internaltb.Id = ?
|
||||||
|
AND internaltb.SystemModstamp = ?
|
||||||
ON DUPLICATE KEY UPDATE
|
ON DUPLICATE KEY UPDATE
|
||||||
IsDeleted = internaltb.IsDeleted, Name = internaltb.Name, CreatedDate = internaltb.CreatedDate,
|
IsDeleted = internaltb.IsDeleted, Name = internaltb.Name, CreatedDate = internaltb.CreatedDate,
|
||||||
CreatedById = internaltb.CreatedById, LastModifiedDate = internaltb.LastModifiedDate,
|
CreatedById = internaltb.CreatedById, LastModifiedDate = internaltb.LastModifiedDate,
|
||||||
LastModifiedById = internaltb.LastModifiedById, SystemModstamp = internaltb.SystemModstamp,
|
LastModifiedById = internaltb.LastModifiedById,
|
||||||
MayEdit = internaltb.MayEdit, IsLocked = internaltb.IsLocked, LastViewedDate = internaltb.LastViewedDate,
|
MayEdit = internaltb.MayEdit, IsLocked = internaltb.IsLocked, LastViewedDate = internaltb.LastViewedDate,
|
||||||
LastReferencedDate = internaltb.LastReferencedDate, Account_vod__c = internaltb.Account_vod__c,
|
LastReferencedDate = internaltb.LastReferencedDate, Account_vod__c = internaltb.Account_vod__c,
|
||||||
Awareness__c = internaltb.Awareness__c, Selling_Stage__c = internaltb.Selling_Stage__c,
|
Awareness__c = internaltb.Awareness__c, Selling_Stage__c = internaltb.Selling_Stage__c,
|
||||||
@ -109,7 +112,7 @@ OPEN table_cursor;
|
|||||||
-- ループ
|
-- ループ
|
||||||
TableCursorLoop: LOOP
|
TableCursorLoop: LOOP
|
||||||
-- スキーマ取得
|
-- スキーマ取得
|
||||||
FETCH table_cursor INTO temp_table_id, target_column_value;
|
FETCH table_cursor INTO temp_table_id, temp_system_modstamp, target_column_value;
|
||||||
|
|
||||||
-- 終了条件ループ抜き
|
-- 終了条件ループ抜き
|
||||||
IF fetch_done THEN
|
IF fetch_done THEN
|
||||||
@ -118,12 +121,13 @@ TableCursorLoop: LOOP
|
|||||||
|
|
||||||
SET @distribution_schema = internal02.get_distribution_to_schema('crm_Product_Metrics_vod__c', 'medaca_parent_msj_product_classification__c', target_column_value);
|
SET @distribution_schema = internal02.get_distribution_to_schema('crm_Product_Metrics_vod__c', 'medaca_parent_msj_product_classification__c', target_column_value);
|
||||||
SET @temp_table_id = temp_table_id;
|
SET @temp_table_id = temp_table_id;
|
||||||
|
SET @temp_system_modstamp = temp_system_modstamp;
|
||||||
|
|
||||||
SET @upsert_statement = REPLACE(@upsert_statement_base, "$$distribution_schema$$", @distribution_schema);
|
SET @upsert_statement = REPLACE(@upsert_statement_base, "$$distribution_schema$$", @distribution_schema);
|
||||||
|
|
||||||
-- UPSERT実行
|
-- UPSERT実行
|
||||||
PREPARE stmt FROM @upsert_statement;
|
PREPARE stmt FROM @upsert_statement;
|
||||||
EXECUTE stmt USING @temp_table_id;
|
EXECUTE stmt USING @temp_table_id, @temp_system_modstamp;
|
||||||
DEALLOCATE PREPARE stmt;
|
DEALLOCATE PREPARE stmt;
|
||||||
|
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user