据我所知,当在查询中发出FOR UPDATE
子句时,只要执行查询,数据库就会自动对SELECT
语句返回的所有行发出独占行级锁定。保持直到发出COMMIT
或ROLLBACK
命令。
这些行级锁会阻止其他连接删除或更新此查询中的记录,但它们是否也会阻止其他用户在锁定到位时插入查询表?
答案 0 :(得分:3)
不,SELECT ... FOR UPDATE
不会阻止插入。
Automatic Locks in DML Operations:
行独占锁(RX),也称为子独占表锁(SX), 表示持有锁的事务已更新表行 或发出SELECT ... FOR UPDATE。 SX锁允许其他事务 在。中同时查询,插入,更新,删除或锁定行 同桌。因此,SX锁允许获得多个事务 同一个表的同时SX和SS锁。