【mysql】mysql参数之autocommit
时间:2015-12-27 05:12:27 作者:beebol 标签: autocommmit mysql MySQLdb 分类: mysql
autocommit是一个改变事务提交方式参数,设置为1时,所有改变变的立即生效,也就是说为1时,语句执行完后,事务自动提交。如果设置为0时,需要通过commit或者rollback进行提交或者回滚事务。 纠正一种说法就是,set autocommit = 0时,会自动开启一个事务,准确来说是set autocommit = 0时下一个语句会自动开启一个事务。 set autocommit = 0与start transaction的区别: 前者下改变事务提交方式,是自动提交还是非自动提交,设置时不会导致前面的事务隐性提交; 后者是立即开启一个事务,并隐性提交前面的事务
set autocommit = 1 与 commit 的区别 两者都可以提交前面的事务,但在5.0、5.1的版本中会不一样,具体可以看下bug#54462
另外比较重要的点需要注意: python使用MySQLdb连接mysql数据库时,autocommit默认会设置成OFF的,每个sql进来后,都需要主动commit来提交事务。代码中设置成ON,如果需要开一个事务,通过start transaction方式来开启。
参考: http://venublog.com/2010/06/12/autocommit-implicit-commit-and-open-transactions/ http://bugs.mysql.com/bug.php?id=54462