开发者社区> 问答> 正文

数据库事务不提交或提交失败需要回滚吗?

请问在同一个事务中,如果我没有提交事务(因为我已经捕获到异常了)这个时候需要回滚操作吗?
我看到很多代码上都做了回滚,但是此时我连事务都没提交,都没真正与数据库发生交互,回滚什么呢?
还有如果我在提交事务的过程中出现异常,这时需要回滚吗?
如果出现异常那么事务提交失败,这个时候应该也没有真正影响到数据库,是不是也不需要回滚?
那么回滚真正是在什么地方用呢?

展开
收起
落地花开啦 2016-02-15 11:06:22 4804 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    1.不提交只有两种情况:
    客户端进程终止,数据库主动回滚;
    执行代码的进程一直等待,这会阻塞其他修改该数据的会话
    2.提交失败
    只有一种情况吧: 数据库报错,这时数据库给客户端说数据库出问题了,问题修复后应该会主动回滚
    综上,无论因为网络中断还是db服务器问题(磁盘、电源...),都会主动回滚,否则产生阻塞

    2019-07-17 18:43:04
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载