具体来说,为什么他们的手册声称下面是
在可重复读取事务开始后,可重复读取事务不能修改或锁定其他事务更改的行。
这个声明真的有必要保证没有“不可重复的读取”吗?这对我来说并不明显,有人能澄清一下吗?
发布于 2014-12-30 11:32:06
该语句适用于REPEATABLE READ,而不是READ COMMITTED。
READ COMMITTED没有强制执行您所引用的要求。只有REPEATABLE READ和SERIALIZABLE这样做。
REPEATABLE READ事务开始后不能修改或锁定其他事务更改的行的原因是,修改后的行可能不再匹配事务用于选择它的谓词,而且如果REPEATABLE READ事务随后根据它可以看到的旧版本修改行,则新值( REPEATABLE READ事务不允许看到)可能会丢失。
https://stackoverflow.com/questions/27703330
复制相似问题