for update加锁范围

来源:2-4 事务原则与实现:JDBC事务(下)

tanyoung

2019-08-18

老师您好,请问for update不锁全表的条件就是有条件查询,而且条件必须走主键索引或者唯一索引吧,普通索引或者联合索引啥的不行么

写回答

1回答

大漠风

2019-08-19

根据文档,只是说只要有“index”就会锁记录,而不是全表。

但是,之前遇到过一个问题,我用“for update”锁了一条记录,但是,之后的一个更新被block了,那是一个类似这样的:“update user where id < 10010”。我锁的记录的id是大于10010的,更新的用户的范围肯定没有之前锁的用户。所以,在锁了一条记录以后,后续的范围查询的更新也会被锁住。

但是,我现在也没有进行测试,需要测试确认一下。

0
0

分布式事务实践,从原理到实例,解决数据一致性

掌握分布式事务实现技术,是架构师必备技能。

1149 学习 · 153 问题

查看课程