我是一位正在學習事務的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之間的區別。 –