在innodb中的mysql事务中,在 SELECT ... FOR UPDATE
查询 REPEATABLE READ
模式。
因此,如果事务t1运行查询 SELECT * FROM
inventoryWHERE
price=45545 FOR UPDATE;
然后t2运行 UPDATE
inventorySET
color=3 WHERE
price=45545;
,由于间隙锁定,t2暂停直到t1完成。此行为很有用,因为t1保持一个不变量,即它对所有具有 price`=45545` . 但是,当没有行时,情况似乎并非如此
price=45545
首先。在这种情况下,不创建间隙锁,t2成功运行,打破了不变量。
有没有办法强迫mysql在没有行匹配的情况下使用间隙锁?
暂无答案!
目前还没有任何答案,快来回答吧!