我不知道使用 Start Transaction OR Begin Work 哪个更好,有什么区别。
问问题
8322 次
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 回答