Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  BEGIN ... END Compound Statement

15.6.1 BEGIN ... END 复合语句

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

BEGIN ... END 语法用于编写复合语句,可以出现在存储程序(存储过程和函数、触发器和事件)中。复合语句可以包含多个语句,使用BEGINEND 关键字包围。statement_list 表示一个或多个语句的列表,每个语句以分号 (;) 语句结束符结尾。statement_list 本身是可选的,所以空复合语句 (BEGIN END) 是合法的。

BEGIN ... END 块可以嵌套。

使用多个语句需要客户端能够发送包含; 语句结束符的语句字符串。在 mysql 命令行客户端中,这是使用delimiter 命令处理的。将; 语句结束符更改为(例如,到 //)使得在程序体内可以使用;。例如,请参见第27.1节,“定义存储程序”

可以标记一个BEGIN ... END块。见第15.6.2节,“语句标签”

可选的[NOT] ATOMIC子句不受支持。这意味着在指令块开始时,不会设置事务保存点,并且在这个上下文中使用的BEGIN子句对当前事务没有影响。

Note

在所有存储程序中,解析器将BEGIN [WORK]视为一个BEGIN ... END块的开始。要在这个上下文中开始事务,使用START TRANSACTION