事务A尝试进行加锁操作 select for update where xxx
,但此时事务B已经加update锁,事务A会等待事务B释放锁再执行。
那么,如果事务B commit所作的改变,使得某些行数据不再符合事务A的where XXX条件,
那么此时会发生什么?事务A的select还会获取到这些数据吗?
事务A尝试进行加锁操作 select for update where xxx
,但此时事务B已经加update锁,事务A会等待事务B释放锁再执行。
那么,如果事务B commit所作的改变,使得某些行数据不再符合事务A的where XXX条件,
那么此时会发生什么?事务A的select还会获取到这些数据吗?
5 回答3.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.2k 阅读✓ 已解决
当 B 释放锁的时候,数据已经发生改变。A 再进行当前读就会发现没有符合的数据,所以 select 获取不到这些数据。