我是一位正在学习事务的MySQL新手,我正在使用InnoDB引擎。我看到他们要求在开始一个事务之前将autocommit设置为0,但是在两种方式中(将它设置为0或1),我看到了相同的行为:事务在提交后被验证并通过回滚无效。将autocommit设置为0还是1,有什么区别?InnoDB中的MySQL事务
-1
A
回答
1
如果自动提交,那么每当你有效地发出查询的运行是这样的:
start transaction;
...do a query ...
commit;
start transaction;
... do another query ...
commit
etc...
自动提交了,有没有自动交易,你自己启动它,这使得代码的运行是这样的:
start transaction
...do a query ...
...do another query ...
... etc...
commit;
如果您只发出单一命令查询,那么行为没有太大区别。当你开始发出多个连续的查询,新的行为真的踢它的唯一。
0
0
有3种模式:
autocommit=1
(或ON
):每个语句是一个事务。 (见Marc的回答)autocommit=0
(或OFF
):您最终必须发出COMMIT
,否则更改将会丢失。 (我看到这个模式太容易出错用不完。)BEGIN
(或START TRANSACTION
)...COMMIT
(或ROLLBACK
):这明确地阐明了交易的程度。autocommit
被忽略。我认为这是“最佳实践”
相关问题
- 1. 请帮我理解MySQL InnoDB事务
- 2. 事务不回滚与MySQL/InnoDB
- 3. NHibernate,MySQL,InnoDB和嵌套事务
- 4. 使用MySQL和InnoDB管理Rails3中的事务
- 5. InnoDB更新MyISAM和InnoDB表的事务的行为
- 6. 与MySQL的InnoDB
- 7. 在MySQL(InnoDB的)
- 8. InnoDB - 回滚连接的所有事务
- 9. mysql innodb中断表
- 10. hibernate事务导致在mysql提交和随后回滚innodb
- 11. MySQL启动事务不与innoDB引擎一起工作
- 12. Django 1.5 mysql 5.5(InnoDb)事务异常无法回滚
- 13. Mysql中的InnoDB错误
- 14. 在一台服务器上跨几个InnoDB数据库的MySQL事务
- 15. Mysql的InnoDB的crach
- 16. 让joomla使用innoDB并支持事务
- 17. 将PDO(InnoDB)事务传递给新类
- 18. innoDB的MySQL备份
- 19. MySQL InnoDB CASCADE?
- 20. Mysql/InnoDB或Postgresql?
- 21. mysql innodb锁
- 22. MySQL InnoDB锁定
- 23. MYSQL - 锁定 - InnoDB
- 24. MySQL PBXT vs InnoDB
- 25. MySQL InnoDB优化
- 26. MySQL InnoDB Global Var?
- 27. 的InnoDB/MySQL的 - 新的事务使用,而不是返回更新的数据
- 28. 在MySQL中启用InnoDB
- 29. MySQL事务中的EXECUTE
- 30. 在Java中的MySQL事务
我有这样的疑问: 开始交易 ......做一个查询... ... 做另一个查询... ... 等.. 承诺; 我只想知道在开始事务之前将自动提交设置为0或1之间的区别。 –