Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
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
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.