是否可以回滚在同一个连接线程中执行过的所有语句?而不是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. 每个事务的单个连接与所有事务的单个连接?
- 4. Django 1.5 mysql 5.5(InnoDb)事务异常无法回滚
- 5. hibernate事务导致在mysql提交和随后回滚innodb
- 6. 回滚事务
- 7. 如何使用PDO连接返回有关事物的所有连接
- 8. 连接关闭后,asp.net TransactionScope如何回滚事务?
- 9. EF6事务回滚
- 10. Redis事务回滚
- 11. EJB3事务回滚
- 12. PHP事务不回滚
- 13. MySQL和事务不回滚
- 14. 强制回滚事务导致嵌套事务也回滚?
- 15. CMT回滚:如何回滚事务
- 16. django的回滚事务
- 17. 春/ MyBatis的事务回滚
- 18. InnoDB中的MySQL事务
- 19. 回滚所有DB犯嵌套事务春季
- 20. 回滚事务请求没有相应的开始事务
- 21. 使用事务日志回滚事务
- 22. EJB3/DB2事务没有回滚
- 23. MySQL事务回滚没有ROLLBACK查询?
- 24. 在MySQL中的事务 - 无法回滚
- 25. JBoss的事务回滚使用JDBC
- 26. 当回滚JDBC事务
- 27. TransactionScope不回滚事务
- 28. SQL Server事务回滚
- 29. SQL Server回滚事务
- 30. 错误回滚事务