如果省略 COMMIT TRANSACTION 则自动回滚
在给定的 SQL 语句中:
START TRANSACTION; BEGIN; INSERT INTO prp_property1 (module_name,environment_name,NAME,VALUE) VALUES ('','production','','300000'); /** Assume there is syntax error SQL here...**/ Blah blah blah DELETE FROM prp_property1 WHERE environment_name = 'production'; COMMIT TRANSACTION;
问题是否存在由于语法错误而永远无法到达 COMMIT TRANSACTION 语句,因此事务会自动回滚。
事务回滚行为
与假设相反,事务不会自动回滚遇到错误时回滚。此行为通常在客户端应用程序设置中实现。例如,MySQL 命令行客户端在出现错误时终止执行并退出,这会导致任何正在进行的事务回滚。
在开发自定义应用程序时,开发人员可以控制事务回滚策略。但是,存在某些例外情况:
在这些特定场景之外,错误不会自动导致回滚。返回错误,开发人员可以自由决定下一步的操作,包括尽管出现错误仍提交事务。
以上是COMMIT TRANSACTION 遗漏会自动回滚事务吗?的详细内容。更多信息请关注PHP中文网其他相关文章!