LOOP ステートメントは、単純なループを構築するために使用されます。
[begin_label:] LOOP
statement_list
END LOOP [end_label]
LOOP ステートメントは、statement_list の繰り返し実行を許可します。statement_list は1つ以上のステートメントで構成され、各ステートメントはセミコロン(;)で終わります。ループ内のステートメントは、LEAVE でループを終了するまで繰り返し実行されます。ストアドファンクションでは、RETURN を使用して関数を完全に終了することもできます。ループ終了ステートメントを含めない場合、無限ループが発生します。label を使用して LOOP ステートメントにラベルを付けることができます。
LOOP ステートメントの例:
obclient> DELIMITER //
obclient> CREATE PROCEDURE iter_proc(p1 INT)
BEGIN
loop_label1: LOOP
SET p1 = p1 + 10;
IF p1 < 100 THEN
ITERATE loop_label1;
END IF;
LEAVE loop_label1;
END LOOP loop_label1;
SET @x = p1;
END //
Query OK, 0 rows affected