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