日期:2014-05-16  浏览次数:22074 次

set autocommit=0 与 start transaction 有啥区别啊 ?
我看网上的说明没看懂。 好像功能都是一样的。 

求指导。 O(∩_∩)O谢谢

------解决方案--------------------
set autocommit=0,
指事务非自动提交,自此句执行以后,每个SQL语句或者语句块所在的事务都需要显示"commit"才能提交事务。

start transaction指的是启动一个事务。
这两者意义并不一样。
在自动提交方式下,发不发起start transaction,效果一样,因为语句结束会自动commit.
但是在非自动提交模式下,发起了start transation,则在此语句之前的sql语句会隐式提交一个事务。

两者不要混淆了。
------解决方案--------------------
set autocommit=0 
是设置事务自动提交模式为0, 也就是不自动提交


start transaction
是声明开始一个事务。