文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  BEGIN ... END 复合语句

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 子句对当前事务没有影响。

注意

在所有存储程序中,解析器将 BEGIN [WORK] 视为 BEGIN ... END 代码块的开头。要在此上下文中开始事务,请改用 START TRANSACTION