MYSQLカーソルループ
CREATE PROCEDURE
-ループを開始read_loop:LOOP–カーソルのデータを抽出します.ここには1つしかありません.複数なら同じです.FETCH cur INTO a; – 声明終了時IF done THEN LEAVE read_loop; END IF; – ここであなたがやりたいループのイベントをします
END LOOP; – カーソルCLOSE curを閉じます.
END
test
. new_procedure
()BEGIN–カーソルデータを受信する変数DECLARE a CHAR(16)を定義する必要があります.–カーソルDECLARE cur CURSOR FOR SELECT i FROM test.t; – 遍歴データ終了フラグDECLARE done INT DEFAULT FALSE;–カーソルDECLARE CONTINE HANDLER FOR NOT FOUND SET done=TRUEに終了フラグをバインドします.–カーソルOPEN curを開きます.-ループを開始read_loop:LOOP–カーソルのデータを抽出します.ここには1つしかありません.複数なら同じです.FETCH cur INTO a; – 声明終了時IF done THEN LEAVE read_loop; END IF; – ここであなたがやりたいループのイベントをします
INSERT INTO test.t VALUES (a);
END LOOP; – カーソルCLOSE curを閉じます.
END