是否可以回滚在同一个连接线程中执行过的所有语句?而不是ROLLBACK只是恢复最后执行的语句。InnoDB - 回滚连接的所有事务
1
A
回答
1
您不能回滚事务中不属于事务的东西 - 尽管对于大多数dbs,您可以拥有使每个语句成为事务的自动提交模式。为了得到你想要的东西,你需要启动一个事务,做任何你需要的处理,然后回滚到开始或者提交。
2
取决于自动提交默认情况下,对于每个连接禁用。来自MySql Manual
在InnoDB中,所有的用户活动都发生在一个事务中。如果启用自动提交模式,则每个SQL语句将自行形成一个事务。默认情况下,MySQL为启用自动提交的每个新连接启动会话,因此如果该语句没有返回错误,则MySQL会在每个SQL语句后执行提交。如果语句返回错误,则提交或回滚行为取决于错误。请参见第13.2.12节“InnoDB错误处理”。
启用自动提交的会话可以通过以明确的START TRANSACTION或BEGIN语句启动并以COMMIT或ROLLBACK语句结束来执行多语句事务。
自动提交模式在SET autocommit = 0的会话中被禁用,会话始终打开一个事务。 COMMIT或ROLLBACK语句结束当前事务并开始一个新事务。
如果作为提交是隐含自动提交启用你不能ROLLBACK语句。
2
除了通常的COMMIT和ROLLBACK语句,InnoDB支持savepoints。保存点允许您仅回滚事务内的最后几条语句。
相关问题
- 1. 事务不回滚与MySQL/InnoDB
- 2. 关于丢失/断开连接的事务的MySQL回滚
- 3. LMDB:回滚事务而不回滚所有内容
- 4. 每个事务的单个连接与所有事务的单个连接?
- 5. Rails事务没有回滚
- 6. hibernate事务导致在mysql提交和随后回滚innodb
- 7. Django 1.5 mysql 5.5(InnoDb)事务异常无法回滚
- 8. 事务回滚?
- 9. 事务回滚
- 10. 回滚事务
- 11. 回滚post_save接收器中的事务?
- 12. 如何使用PDO连接返回有关事物的所有连接
- 13. PHP mysql_query事务没有回滚
- 14. 连接关闭后,asp.net TransactionScope如何回滚事务?
- 15. 在抛出异常时回滚事务并关闭连接
- 16. 回滚事务SQL
- 17. EJB3事务回滚
- 18. Redis事务回滚
- 19. EF6事务回滚
- 20. VB.NET - 事务回滚
- 21. Spring的事务:回滚事务
- 22. MySQL和事务不回滚
- 23. PHP事务不回滚
- 24. 有条件的事务回滚
- 25. 强制回滚事务导致嵌套事务也回滚?
- 26. InnoDB中的MySQL事务
- 27. CMT回滚:如何回滚事务
- 28. SQL ServiceBrokerInterface事务回滚不回滚
- 29. 内部回滚事务回滚外部
- 30. django的回滚事务