数据库commit
发布时间: 2023-03-24 00:15:48
A. 若数据库操作commit发生异常,没有执行回滚,这时数据会存入数据库吗
弄清楚这个问题之前,要先要搞清楚执行数据修改(excute),但未提交事务之前,已修改的数据存放在哪里?这时的数据是在数据库内存缓冲区中。commit操作就是将缓冲区中已修改数据写入磁盘,形成持久化存储。
那么当commit提交的修改的数据是多条时,假设部分数据已经由缓冲区写入磁盘,另一部分还未完成时,出现异常,这个时候,如果不回滚,那么就无法保证数据修改的一致性(比如联机转账,A的账户扣了款,B的账户余额未增加)。
简单来说就是:若数据库操作commit发生异常,没有执行回滚,这时可能出现部分数据保存成功,部分保存失败,因此需要rollback回滚操作。
热点内容