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。