MySQL 8.4 版本注意事項
[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
。