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
是声明开始一个事务。