为什么 innodb 中的一条记录可以有两个锁(X 和 S)?我知道S锁和X锁不能同时存在。
最佳答案
你不能。您的 S 锁将升级为 X 锁,这两个查询在同一事务中按顺序执行。你两者都没有。
如果第二个事务也获得了相同记录上的 S 锁,然后运行您的 FOR UPDATE
查询,它至少会阻塞,直到另一个事务进行下一步操作,也许更长时间,直到锁升级可能发生或确定不可能。最终提示会返回,否则就会陷入僵局。
关于mysql - 为什么我可以在 innodb 的一条记录上有两个锁(X 和 S)?我知道S锁和X锁不能同时存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44558314/