Xia*_*ang 2 mysql transactions commit autocommit
我正在使用带有mysqldb适配器的web2py dal连接到mysql服务器.
我的问题:
服务器信息:innodb engine autocommit = 1(默认值)tx_isolation = repeatable-read(默认值)
general_log:
100356 10:00:00 123456 Connect dummy@172.0.0.1 on dummydb
123456 Query SET NAMES 'utf8'
123456 Query SET AUTOCOMMIT = 0
123456 Query COMMIT
123456 Query SET FOREIGN_KEY_CHECKS=1
123456 Query SET sql_mode='NO_BACKSLASH_ESCAPES'
Run Code Online (Sandbox Code Playgroud)
呃...因为你禁用了自动提交????
这是一个很好的解释:
http://rpbouman.blogspot.com/2007/02/mysql-transactions-and-autocommit.html
启用自动提交后,每个语句都包含在自己的事务中.COMMIT成功执行语句后会发生错误,并且发生错误会中止事务,并回滚任何更改.
默认情况下,在MySQL中启用自动提交.
换一种说法:
"事务"不一定只关于"将多个语句作为一个原子实体执行"
autocommit为您提供一个声明== 1交易的"错觉"
事实上,"automcommit off"给你"一个声明== 0个交易"
来自同一链接:
...关闭自动提交的重点是你可以发出多个语句并立即提交它们.
| 归档时间: |
|
| 查看次数: |
3777 次 |
| 最近记录: |