Discuss / SQL / 第二次查询仍为空

第二次查询仍为空

Topic source

可重复读的事务B内查询与开始时刻一致(快照),但本事务内的更新操作会更新快照。因此第六次查询的与一开始的一致,为空,第七步在本事务内执行更新操作后就会重新生成一次查询。

Repeated Read解决的是不可重复读问题,是update操作,并不能避免insert和delete操作执行,幻读的产生原因正是事务开启后,操作范围进行了插入和删除的操作。

XD

#14 Created at ... [Delete] [Delete and Lock User]

一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。

Loading...

#15 Created at ... [Delete] [Delete and Lock User]

RepeatableRead,设置事务隔离级别为可重复读,从事务开始到事务结束,不会被其他事务操作数据所影响,可以重复读取数据,保证数据一致性。

但是会出现幻读,当其他事务提交以后,可重复读已经可以操作数据了,所以update成功,查询也可以了。


  • 1
  • 2

Reply