我是一位正在学习事务的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. 在MySQL(InnoDB的)
- 6. 与MySQL的InnoDB
- 7. InnoDB - 回滚连接的所有事务
- 8. Django 1.5 mysql 5.5(InnoDb)事务异常无法回滚
- 9. hibernate事务导致在mysql提交和随后回滚innodb
- 10. MySQL启动事务不与innoDB引擎一起工作
- 11. mysql innodb锁
- 12. MYSQL - 锁定 - InnoDB
- 13. MySQL PBXT vs InnoDB
- 14. MySQL InnoDB CASCADE?
- 15. MySQL InnoDB优化
- 16. Mysql/InnoDB或Postgresql?
- 17. MySQL InnoDB Global Var?
- 18. 我可以在InnoDB事务中检索挂起的查询吗?
- 19. 的MySQL - InnoDB的VS的MyISAM
- 20. MySQL的InnoDB的错误1005
- 21. Mysql中的MySQL事务+ PHP问题
- 22. MySql,InnoDB和NULL值
- 23. MySQL InnoDB锁定行
- 24. mysql innodb vs myisam inserts
- 25. MySQL-InnoDb智能锁?
- 26. Fork MySQL INSERT INTO(InnoDB)
- 27. MySQL InnoDB锁问题
- 28. Mysql InnoDB数据库
- 29. MySQL集群比InnoDB的
- 30. 配置MySQL的InnoDB为
我有这样的疑问: 开始交易 ......做一个查询... ... 做另一个查询... ... 等.. 承诺; 我只想知道在开始事务之前将自动提交设置为0或1之间的区别。 –