2

私はSOを検索しましたが、これに似た別の投稿が1つ見つかりました。フォローアップだと思ったものをフォローしましたが、まだ問題が発生しています。

また、MySQL のマニュアルも調べましたが、ここにあるものは正しいようです。

DELIMITER $$

CREATE DEFINER=`perimUser`@`localhost` PROCEDURE `assignLOBId`()
BEGIN
    declare id, done INT default 0;
    declare name VarChar(45);

    declare lobCursor Cursor for Select idLineOfBusiness as id, name from LineOfBusiness;
    declare continue handler for not found set done = 1;

    OPEN lobCursor;

    my_loop: LOOP 
        FETCH lobCursor INTO id, name;

            IF done = 1 THEN
                CLOSE lobCursor;
                LEAVE my_loop;
            END IF; 

            insert into test values (id, name);
            UPDATE medium set idLOB = id where LOB = name;
            UPDATE low set idLOB = id where LOB = name;

    End LOOP my_loop;

END

カーソルに使用しているクエリを実行したところ、13 行が返されました。中程度のテーブルと低めのテーブルは、それぞれ約 600 行のデータでいっぱいです。LOB は、それぞれの LOB 列の値と一致します。使用された値基幹業務にあるものを作成するために、ミディアムとローから生成されました。

ここでの目標は、このパターンを何度も使用して、データを中位および低位で正規化することです。それ以外の場合は、ショートカットを使用して、一連の手動更新ステートメントを作成します。

4

1 に答える 1