标签: mysql innodb
为什么我可以在innodb的一条记录上有两个锁(X和S)?我知道S和X锁不能同时存在。
答案 0 :(得分:0)
你做不到。您的S锁升级为X锁,这两个查询在同一事务中按顺序执行。你没有两者。
如果第二个事务也在相同的记录上获得了S锁,然后运行了FOR UPDATE查询,它将至少阻止另一个事务进行下一步,可能更长,直到锁升级可能发生或被确定为impossibe。最终提示会返回,或者你会陷入僵局。
FOR UPDATE