在RR隔离级别下,快照读出现了幻读?
来源:3-17 锁模块之RR如何避免幻读

qq_机智勇敢_0
2020-04-23
Session A
BEGIN; // 两个BEGIN首先同时开启,这是第一步
INSERT INTO tx(id, account) VALUES (NULL, 8888); 第三步
COMMIT; // 第四步
Session B
BEGIN;// 两个BEGIN同时首先开启,这是第一步
SELECT * FROM tx; // 读到N条记录,这是第二步
UPDATE tx SET account = account - 50; 第五步
SELECT * FROM tx; // 第六步,执行完这一步,就读到了第五步的结果,出现了幻读
COMMIT;
老师,第六步出现的应该就是幻读吧?那么出现幻读的原因,我猜是不是因为update语句更新了undo日志中这些记录的版本,然后第六步的快照读读取了最新版本的记录?
写回答
1回答
-
翔仔
2020-04-24
00
相似问题