MySQL 8.0 リファレンスマニュアル


13.6.5.5 LOOP ステートメント

[begin_label:] LOOP
    statement_list
END LOOP [end_label]

LOOP は単純なループ構造構文を実装し、それぞれがセミコロン (;) ステートメント区切り文字で終了する 1 つ以上のステートメントで構成されたステートメントリストの繰り返し実行を可能にします。 ループ内の各ステートメントは、そのループが終了するまで繰り返されます。 通常、これは LEAVE ステートメントで実行されます。 ストアドファンクション内では、RETURN も使用できます。これにより、そのストアドファンクションが完全に終了します。

ループ終了ステートメントが含まれていない場合は、無限ループが発生します。

LOOP ステートメントにはラベルを付けることができます。 ラベルの使用に関連したルールについては、セクション13.6.2「ステートメントラベル」を参照してください。

例:

CREATE PROCEDURE doiterate(p1 INT)
BEGIN
  label1: LOOP
    SET p1 = p1 + 1;
    IF p1 < 10 THEN
      ITERATE label1;
    END IF;
    LEAVE label1;
  END LOOP label1;
  SET @x = p1;
END;

関連キーワード:  ステートメント, CREATE, TABLE, DROP, サブクエリー, FUNCTION, SLAVE, 関数, REPLICA, PROCEDURE