0

具体来说,为什么他们的手动声明如下

在可重复读事务开始后,可重复读事务不能修改或锁定由其他事务更改的行。

这种说法真的有必要保证没有“不可重复读取”吗?这对我来说并不明显,有人可以澄清吗?

4

1 回答 1

1

该声明适用于REPEATABLE READ,不适用READ COMMITTED

READ COMMITTED不执行您引用的要求只有REPEATABLE READSERIALIZABLE做。

REPEATABLE READ事务开始后无法修改或锁定其他事务更改的行的原因是,修改的行可能不再匹配事务用来选择它的谓词,并且因为新值(不允许REPEATABLE READ事务查看) 如果REPEATABLE READ事务随后根据它可以看到的旧版本修改行,则可能会丢失。

于 2014-12-30T11:32:06.820 回答