feat:振分先蓄積スキーマ取得のストアドファンクションのファイルを追加
This commit is contained in:
parent
36650b483f
commit
73783114b4
@ -0,0 +1,57 @@
|
||||
CREATE FUNCTION `get_distribution_to_schema`(target_table VARCHAR(255), target_column VARCHAR(255), target_column_value VARCHAR(255))
|
||||
RETURNS VARCHAR(20)
|
||||
DETERMINISTIC
|
||||
|
||||
BEGIN
|
||||
DECLARE ret VARCHAR(20) DEFAULT NULL;
|
||||
DECLARE distribution_schema_other VARCHAR(20);
|
||||
DECLARE value_table_id VARCHAR(100);
|
||||
DECLARE value_from_column_id VARCHAR(100);
|
||||
DECLARE value_from_column_value VARCHAR(100);
|
||||
DECLARE value_to_schema VARCHAR(20);
|
||||
|
||||
-- カーソルがデータセットの最後に達したか判定するための変数を宣言
|
||||
DECLARE done INT DEFAULT FALSE;
|
||||
|
||||
-- カーソルを定義
|
||||
DECLARE myCursor CURSOR FOR
|
||||
SELECT `table_id`, `from_column_id`, `from_column_value`, `to_schema`
|
||||
FROM `crm_data_distribution_settings`
|
||||
WHERE `table_id` = target_table
|
||||
AND `from_column_id` = target_column;
|
||||
|
||||
-- カーソルがデータセットの最後に達したときの動作を制御
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
|
||||
|
||||
-- カーソルをオープン
|
||||
OPEN myCursor;
|
||||
|
||||
-- ループで1行ずつ処理
|
||||
read_loop: LOOP
|
||||
-- カーソルから1行読み出し
|
||||
FETCH myCursor INTO value_table_id, value_from_column_id, value_from_column_value, value_to_schema;
|
||||
|
||||
-- カーソルからの読み出しが最後に達していればループを抜ける
|
||||
IF done THEN
|
||||
LEAVE read_loop;
|
||||
END IF;
|
||||
|
||||
IF value_from_column_value = target_column_value THEN
|
||||
SET ret = value_to_schema;
|
||||
END IF;
|
||||
|
||||
IF value_from_column_value = 'other' THEN
|
||||
SET distribution_schema_other = value_to_schema;
|
||||
END IF;
|
||||
|
||||
END LOOP;
|
||||
|
||||
-- カーソルを閉じる
|
||||
CLOSE myCursor;
|
||||
|
||||
IF ret = NULL THEN
|
||||
SET ret = distribution_schema_other;
|
||||
END IF;
|
||||
|
||||
RETURN ret;
|
||||
END
|
||||
Loading…
x
Reference in New Issue
Block a user