Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


13.6.2 ステートメントラベルの構文

[begin_label:] BEGIN
    [statement_list]
END [end_label]

[begin_label:] LOOP
    statement_list
END LOOP [end_label]

[begin_label:] REPEAT
    statement_list
UNTIL search_condition
END REPEAT [end_label]

[begin_label:] WHILE search_condition DO
    statement_list
END WHILE [end_label]

BEGIN ... END ブロックや、LOOPREPEAT、および 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 構文」を参照してください。


User Comments
  Posted by Kyle Wiering on March 29, 2014
To get the sample code working in MySQL Workbench add the following line preceding the statement

DELIMITER $$
Sign Up Login You must be logged in to post a comment.