当我执行 START TRANSACTION
后立即执行 SHOW VARIABLES LIKE 'autocommit'
时,我发现变量 autocommit
仍设置为 开
。在我明确地说 COMMIT
之前,这不是应该设置为 OFF
吗?
最佳答案
据我了解,事务只是忽略自动提交设置。因此启动事务不会改变自动提交变量的值。这是有道理的,因为您不希望用户 a 的事务在处理用户 a 的事务时禁用用户 b 的自动提交。
通过阅读文档,这一点并不明显,除非您将“自动提交模式”和“自动提交变量”视为两个不同的事物,而它们确实是不同的。
关于MySQL:开始事务将 'autocommit' 设置为关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15557905/