【发布时间】:2017-07-04 11:22:12
【问题描述】:
所以这是来自文档:
为单个系列隐式禁用自动提交模式 语句,使用
START TRANSACTION语句:
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT;
所以据我了解,不像使用BEGIN;不应将自动提交设置为 0 的命令,START TRANSACTION 应将其设置为 0。
现在如果我这样做(在我开始交易之后):
select @@autocommit;
我得到了 1 的值。
为什么即使我使用START TRANSACTION 命令仍然启用自动提交?我认为 autocommit 变量是单个会话的本地变量。或者即使它说 1,它实际上在事务中设置为 0,但无法通过运行 SELECT @@autocommit; 查询来获取该信息?
【问题讨论】:
标签: mysql sql transactions autocommit