Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
具体来说,为什么他们的手动声明如下
在可重复读事务开始后,可重复读事务不能修改或锁定由其他事务更改的行。
这种说法真的有必要保证没有“不可重复读取”吗?这对我来说并不明显,有人可以澄清吗?
该声明适用于REPEATABLE READ,不适用READ COMMITTED。
REPEATABLE READ
READ COMMITTED
READ COMMITTED不执行您引用的要求。只有REPEATABLE READ和SERIALIZABLE做。
SERIALIZABLE
REPEATABLE READ事务开始后无法修改或锁定其他事务更改的行的原因是,修改的行可能不再匹配事务用来选择它的谓词,并且因为新值(不允许REPEATABLE READ事务查看) 如果REPEATABLE READ事务随后根据它可以看到的旧版本修改行,则可能会丢失。