我知道,当FOR UPDATE
子句在查询中发出时,一旦执行查询,数据库就会自动在SELECT
语句返回的所有行上发布独家行级别锁保留直到发出COMMIT
或ROLLBACK
命令。
这些行级锁可以阻止其他连接在此查询中删除或更新记录,但是它们还可以防止其他用户在锁定时插入查询表?
不,SELECT ... FOR UPDATE
不会阻止插入。
DML操作中的自动锁:
一行独家锁(RX(,也称为亚分类表锁(SX(, 表示持有锁的交易已更新了表行 或发行选择...进行更新。SX锁允许其他交易 查询,插入,更新,删除或锁定行同时在 同一表。因此,SX锁允许多次交易获得 同一表的同时SX和SS锁。