BEGIN ... END 语法用于编写复合语句,复合语句可以出现在存储程序(存储过程和函数、触发器和事件)中。复合语句可以包含多个语句,并由 BEGIN 和 END 关键字括起来。statement_list表示一个或多个语句的列表,每个语句以分号(;)分隔。statement_list本身是可选的,因此空的复合语句(BEGIN END)是合法的。可以嵌套使用 BEGIN ... END 语句。若要使用多个语句,要求客户端能够发送包含语句分隔符;的语句字符串。在 mysql 命令行客户端中,采用 delimiter 命令处理。更改 ; 语句结束分隔符(例如,改为 //),以便允许;在程序主体中使用。可以为 BEGIN ... END 添加标记。不支持可选的 [NOT] ATOMIC 子句。这意味着在指令块的开始处没有设置事务性保存点,并且在此上下文中使用的 BEGIN 子句对当前事务没有影响。注意在所有存储的程序中,解析器将 BEGIN [WORK] 视为 BEGIN ... END 块的开始。要在此上下文中开始事务,请改用 START TRANSACTION。官方网址:https://dev.mysql.com/doc/refman/8.0/en/begin-end.html