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


13.6.1 BEGIN ... END 複合ステートメント構文

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

BEGIN ... END 構文は、ストアドプログラム (ストアドプロシージャーとストアドファンクション、トリガー、およびイベント) 内に指定できる複合ステートメントを記述するために使用されます。複合ステートメントには、BEGIN および END キーワードで囲まれた複数のステートメントを含めることができます。statement_list は、それぞれがセミコロン (;) ステートメント区切り文字で終了する 1 つ以上のステートメントのリストを表します。statement_list 自体がオプションであるため、空の複合ステートメント (BEGIN END) は正当です。

BEGIN ... END ブロックはネストできます。

複数のステートメントを使用するには、クライアントが ; ステートメント区切り文字を含むステートメント文字列を送信できる必要があります。mysql コマンド行クライアントでは、これは delimiter コマンドで処理されます。ステートメント終了の区切り文字 ; を (たとえば、// に) 変更すると、プログラム本体での ; の使用が許可されます。例については、セクション20.1「ストアドプログラムの定義」を参照してください。

BEGIN ... END ブロックにはラベルを付けることができます。セクション13.6.2「ステートメントラベルの構文」を参照してください。

オプションの [NOT] ATOMIC 句はサポートされていません。つまり、この命令ブロックの先頭でトランザクションセーブポイントは設定されず、このコンテキストで使用されている BEGIN 句は現在のトランザクションに影響を与えません。

注記

すべてのストアドプログラム内で、パーサーは、BEGIN [WORK]BEGIN ... END ブロックの開始として扱います。このコンテキストでトランザクションを開始するには、代わりに START TRANSACTION を使用します。


User Comments
Sign Up Login You must be logged in to post a comment.