MySQL 9.0 發行說明
[begin_label:] BEGIN
[statement_list]
END [end_label]
BEGIN ... END
語法用於撰寫複合陳述式,這些陳述式可以出現在儲存程式(儲存程序和函數、觸發器和事件)中。複合陳述式可以包含多個陳述式,以 BEGIN
和 END
關鍵字括起來。statement_list
代表一個或多個陳述式的列表,每個陳述式都以分號 (;
) 陳述式分隔符號終止。statement_list
本身是可選的,因此空的複合陳述式 (BEGIN END
) 是合法的。
BEGIN ... END
區塊可以巢狀使用。
使用多個陳述式要求用戶端能夠傳送包含 ;
陳述式分隔符號的陳述式字串。在 mysql 命令列用戶端中,這是使用 delimiter
命令處理的。變更 ;
陳述式結尾分隔符號 (例如,變更為 //
) 允許在程式主體中使用 ;
。如需範例,請參閱第 27.1 節,「定義儲存程式」。
BEGIN ... END
區塊可以加上標籤。請參閱第 15.6.2 節,「陳述式標籤」。
不支援可選的 [NOT] ATOMIC
子句。這表示在指令區塊的開頭未設定任何交易儲存點,且在此內容中使用的 BEGIN
子句對目前的交易沒有影響。
注意
在所有儲存程式中,剖析器將 BEGIN [WORK]
視為 BEGIN ... END
區塊的開頭。若要在此內容中開始交易,請改用 START TRANSACTION
。