若数据库操作commit发生异常,没有执行回滚,这时数据会存入数据库吗?

如果不会存入数据库,为什么还要在程序里写rollback?... 如果不会存入数据库,为什么还要在程序里写rollback? 展开
 我来答
calvinly
2020-03-27 · TA获得超过135个赞
知道答主
回答量:114
采纳率:100%
帮助的人:46.5万
展开全部
弄清楚这个问题之前,要先要搞清楚执行数据修改(excute),但未提交事务之前,已修改的数据存放在哪里?这时的数据是在数据库内存缓冲区中。commit操作就是将缓冲区中已修改数据写入磁盘,形成持久化存储。
那么当commit提交的修改的数据是多条时,假设部分数据已经由缓冲区写入磁盘,另一部分还未完成时,出现异常,这个时候,如果不回滚,那么就无法保证数据修改的一致性(比如联机转账,A的账户扣了款,B的账户余额未增加)。
简单来说就是:若数据库操作commit发生异常,没有执行回滚,这时可能出现部分数据保存成功,部分保存失败,因此需要rollback回滚操作。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式