标签: lost-update

隔离级别:脏写和丢失更新之间的区别

我正在阅读《ANSI SQL 隔离级别批判》 ,并对这两个定义感到困惑:

脏写

w1[x]...w2[x]...((c1 或 a1) 和 (c2 或 a2) 任意顺序)

丢失更新

r1[x]...w2[x]...w1[x]...c1

丢失更新的历史定义不包括脏写吗?(w2[x]...w1[x] 部分)。如果是,那么如果我们防止脏写,我们就可以防止丢失更新,对吗?我知道这显然是错误的,但我不明白为什么。谁能对我在这里误解的内容给出一些提示?非常感谢!

我找到了解释这个例子的文章

在此输入图像描述

由于 T2 在 T1 写入 x 之前提交,因此不存在脏写。

但是丢失更新的定义并不要求第二次写入发生在第一个事务提交之后,对吧?

sql database transactions dirty-write lost-update

6
推荐指数
1
解决办法
2084
查看次数

标签 统计

database ×1

dirty-write ×1

lost-update ×1

sql ×1

transactions ×1