具体而言,为什么他们的手册要求following
可重复读取事务无法修改或锁定更改的行 可重复读取事务开始后的其他事务。
该声明是否真的有必要保证不存在“不可重复的读取”?这对我来说并不明显,有人可以澄清吗?
答案 0 :(得分:1)
该声明适用于REPEATABLE READ
,而非READ COMMITTED
。
READ COMMITTED
不强制执行您引用的要求。只有REPEATABLE READ
和SERIALIZABLE
可以。
REPEATABLE READ
事务在开始后无法修改或锁定其他事务更改的行的原因是因为修改的行可能不再与事务用于选择它的谓词匹配,并且因为新值(如果REPEATABLE READ
事务然后根据它可以看到的旧版本修改行,则REPEATABLE READ
事务不允许查看)可能会丢失。