-- 事务要获取某些行的 S 锁,必须先获得表的 IS 锁。 SELECT column FROM table ... LOCK IN SHARE MODE;
-- 事务要获取某些行的 X 锁,必须先获得表的 IX 锁。 SELECT column FROM table ... FOR UPDATE;
SELECT * FROM users WHERE id = 6 FOR UPDATE;
LOCK TABLES users READ;
SELECT * FROM users WHERE id = 6 FOR UPDATE;
LOCK TABLES users READ;
SELECT * FROM users WHERE id = 6 FOR UPDATE;
LOCK TABLES users READ;
SELECT * FROM users WHERE id = 5 FOR UPDATE;
END 题外推荐 十期推荐 【281期】滴滴二面:try-catch-finally 和 return 是什么顺序执行的? 【282期】面试官:你能说说 Nacos 的实现原理吗? 【283期】熊大同学的面试回忆录(2.5年开发经验) 【284期】共享锁、排他锁、互斥锁、悲观锁、乐观锁、行锁、表锁、页面锁、不可重复读、丢失修改、读脏数据 【285期】Spring的@Transactional如何实现的(必考) 【286期】面试时被问到Flutter/Dart的HashMap怎么办? 【287期】ArrayList使用forEach遍历的时候删除元素会报错吗? 【288期】面试官:什么是CAP 定理,为什么CAP不能同时被满足? 【289期】面试官:说一下JVM常用垃圾回收器的特点、优劣势、使用场景和参数设置 【290期】为什么不建议使用Java序列化? ? ~