若数据库操作commit发生异常,没有执行回滚,这时数据会存入数据库吗?
1个回答
展开全部
弄清楚这个问题之前,要先要搞清楚执行数据修改(excute),但未提交事务之前,已修改的数据存放在哪里?这时的数据是在数据库内存缓冲区中。commit操作就是将缓冲区中已修改数据写入磁盘,形成持久化存储。
那么当commit提交的修改的数据是多条时,假设部分数据已经由缓冲区写入磁盘,另一部分还未完成时,出现异常,这个时候,如果不回滚,那么就无法保证数据修改的一致性(比如联机转账,A的账户扣了款,B的账户余额未增加)。
简单来说就是:若数据库操作commit发生异常,没有执行回滚,这时可能出现部分数据保存成功,部分保存失败,因此需要rollback回滚操作。
那么当commit提交的修改的数据是多条时,假设部分数据已经由缓冲区写入磁盘,另一部分还未完成时,出现异常,这个时候,如果不回滚,那么就无法保证数据修改的一致性(比如联机转账,A的账户扣了款,B的账户余额未增加)。
简单来说就是:若数据库操作commit发生异常,没有执行回滚,这时可能出现部分数据保存成功,部分保存失败,因此需要rollback回滚操作。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询