11

我不知道使用 Start Transaction OR Begin Work 哪个更好,有什么区别。

4

2 回答 2

21

MySQL 手册

BEGIN并且BEGIN WORK被支持作为START TRANSACTION启动事务的别名。START TRANSACTION是标准 SQL 语法,是启动临时事务的推荐方法。

于 2012-05-04T22:18:00.940 回答
0

这是MySQL 8.0 手册的更新答案:

BEGIN ... END 语法用于编写复合语句,这些语句可以出现在存储程序(存储过程和函数、触发器和事件)中。

这意味着 BEGIN ... END 语法仅用于构建代码并启用嵌套(此块可以嵌套)。稍后在手册中:

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

这意味着 BEGIN/BEGIN WORK 是 BEGIN ... END 语法中 BEGIN 的别名,它们不是 START TRANSACTION 的别名。在存储过程、函数、触发器和事件中,您应该始终使用 START TRANSACTION 来启动事务。

于 2021-09-10T21:38:59.220 回答