无法禁用自动提交?

时间:2014-12-17 19:19:58

标签: mysql commit autocommit

我有一个带有MySQL 5.5.35实例的Ubuntu 12.04来宾虚拟机。我似乎无法绕过/关闭autocommit功能......

我想尝试一些与SELECT ... FOR UPDATE;相关的场景,所以我在Windows主机上打开了两个数据库会话 - 一个来自VM本身的MySQL工作台,另一个来自mysql CLI。 。无论我在两个会话中的任何一个会议中做了什自动提交或没有自动提交集,事务或无事务,显式提交或没有显式提交...

我尝试了以下内容:

1)通过配置禁用它

[mysqld]  
autocommit = 0

根据autocommit有效地将全局SHOW GLOBAL VARIABLES变量设置为OFF。不行。

2)以第一个命令运行此命令

set autocommit=0;
select @@autocommit;
+--------------+
| @@autocommit |
+--------------+
|            1 |
+--------------+

不起作用。

3)打开显式交易

start transaction; // tried begin; as well
...
commit;

不起作用。

对于每个单INSERT / UPDATE语句,该死的数据库作为自动提交始终为ON,即使数据库设置和变量显示不同...... commit语句始终返回0 rows affected

我在这里错过了什么......? 这可能以任何可能的方式与用户/特权相关......?

1 个答案:

答案 0 :(得分:2)

您使用的是支持事务的数据库引擎吗?例如如果你正在使用MyISAM,那么没有交易,无论

,自动提交都会保持不变