MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
[begin_label
:] BEGIN [statement_list
] END [end_label
] [begin_label
:] LOOPstatement_list
END LOOP [end_label
] [begin_label
:] REPEATstatement_list
UNTILsearch_condition
END REPEAT [end_label
] [begin_label
:] WHILEsearch_condition
DOstatement_list
END WHILE [end_label
]
BEGIN ... END
ブロックや、LOOP
、REPEAT
、および WHILE
ステートメントに対してラベルが許可されます。 これらのステートメントに使用されるラベルは、次のルールに従います。
begin_label
のあとにコロンを付ける必要があります。
begin_label
は、end_label
なしでも指定できます。 end_label
が存在する場合、それは begin_label
と同じである必要があります。
end_label
は、begin_label
なしでは指定できません。
同じネストレベルにあるラベルは異なっている必要があります。
ラベルは最大 16 文字の長さで指定できます。
ラベルが付けられた構造構文内でラベルを参照するには、ITERATE
または LEAVE
ステートメントを使用します。 次の例では、これらのステートメントを使用して繰り返しを続行するか、またはループを終了します。
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; END;
ブロックラベルのスコープには、そのブロック内で宣言されているハンドラのコードは含まれません。 詳細は、セクション13.6.7.2「DECLARE ... HANDLER ステートメント」を参照してください。