表级锁 · RS
ROW SHARE
行共享锁
带行锁子句的查询在目标表上取得的表级锁;名字中的 ROW 不表示行级锁。
冲突关系
以下只比较不同事务在同一个表上持有的锁。
与这些模式冲突 2
纵轴是请求的锁,横轴是另一事务已经持有的锁;只比较同一对象。
取得此模式的命令
| SQL 命令 | 取得条件与说明 |
|---|---|
| SELECT FOR KEY SHARE | 此模式锁住指定的表;同时在选中的行上取得对应的行锁。 |
| SELECT FOR SHARE | 此模式锁住指定的表;同时在选中的行上取得对应的行锁。 |
| SELECT FOR NO KEY UPDATE | 此模式锁住指定的表;同时在选中的行上取得对应的行锁。 |
| SELECT FOR UPDATE | 此模式锁住指定的表;同时在选中的行上取得对应的行锁。 |
| INSERT(外键检查) | 外键检查的内部 SELECT … FOR KEY SHARE 在被引用表上取得 ROW SHARE;写入目标表上的模式仍是 ROW EXCLUSIVE。 |
| UPDATE(外键检查) | 外键检查的内部 SELECT … FOR KEY SHARE 在被引用表上取得 ROW SHARE;写入目标表上的模式仍是 ROW EXCLUSIVE。 |
| COPY … FROM(外键检查) | 外键检查的内部 SELECT … FOR KEY SHARE 在被引用表上取得 ROW SHARE;写入目标表上的模式仍是 ROW EXCLUSIVE。 |
| MERGE(外键检查) | 外键检查的内部 SELECT … FOR KEY SHARE 在被引用表上取得 ROW SHARE;写入目标表上的模式仍是 ROW EXCLUSIVE。 |
| LOCK TABLE … IN ROW SHARE MODE | 显式请求此表级模式;省略 IN … MODE 时默认为 ACCESS EXCLUSIVE。 |
| ALTER TABLE … VALIDATE CONSTRAINT(外键被引用表) | 验证外键时,被引用表另取 ROW SHARE;正在验证约束的表取 SHARE UPDATE EXCLUSIVE。 |
链接指向本站 PostgreSQL 18 的 SQL 命令百科。命令也可能取得其他锁,查看完整命令关联表。
其他锁模式
数据来源
当前查看 PostgreSQL 18,采样构建 REL_18_STABLE · 753057e340da。冲突关系与命令行为按该版本的文档和源码整理。命令链接进入本站 SQL 命令百科,并保留所选版本。
资料核验日期:2026-09-26。