在《Oracle 数据库概念》一书中,Oracle 给出了一个例子来解释Read Committed Isolation Level
。
在示例中,事务 1 更新第 1 行,然后事务 2 在事务 1 提交之前更新同一行。因此,事务 2 一直等到事务 1 提交。然后事务 1 提交。之后事务 2 提交。当然,事务 2 提交后,事务 1 对行 1 的更新会被事务 2 覆盖。
它将这种情况视为lost update
. 但在我看来,它不应该是“丢失的更新”,因为事务 1 已经提交。在单个事务中考虑丢失的更新。无论读取操作如何,该计划甚至等于可序列化计划。
在 Oracle 的词汇表中,丢失的更新是 -
一种数据完整性问题,其中一个数据写入者覆盖了修改相同数据的不同写入者的更改。
那么,您对此有何看法?它是“丢失更新”吗?如果是,是否可以通过数据库的并发控制来避免这种丢失的更新?
任何意见和帮助将不胜感激。