我正在阅读《ANSI SQL 隔离级别批判》 ,并对这两个定义感到困惑:
w1[x]...w2[x]...((c1 或 a1) 和 (c2 或 a2) 任意顺序)
r1[x]...w2[x]...w1[x]...c1
丢失更新的历史定义不包括脏写吗?(w2[x]...w1[x] 部分)。如果是,那么如果我们防止脏写,我们就可以防止丢失更新,对吗?我知道这显然是错误的,但我不明白为什么。谁能对我在这里误解的内容给出一些提示?非常感谢!
我找到了解释这个例子的文章:
由于 T2 在 T1 写入 x 之前提交,因此不存在脏写。
但是丢失更新的定义并不要求第二次写入发生在第一个事务提交之后,对吧?