↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / 锁百科 / 表级锁

表级锁 · RX

ROW EXCLUSIVE

行排他锁

插入、更新和删除在目标表上取得的表级锁;多个事务可以同时持有。

当前稳定版

冲突关系

以下只比较不同事务在同一个表上持有的锁。

纵轴是请求的锁,横轴是另一事务已经持有的锁;只比较同一对象。

取得此模式的命令

SQL 命令取得条件与说明
INSERT在写入的目标表上加锁;新插入行不能简单等同于对已有行取得 FOR UPDATE。
UPDATE目标表取得此模式;受影响的已有行另有行锁。
DELETE目标表取得此模式;删除的已有行另有 FOR UPDATE 行锁。
COPY … FROM在目标表上加锁并插入新行;不笼统列为对已有行取得 FOR UPDATE。
MERGE目标表取得此模式;每个匹配分支是否加行锁以及锁强度由实际 INSERT / UPDATE / DELETE 动作决定。
LOCK TABLE … IN ROW EXCLUSIVE MODE显式请求此表级模式;省略 IN … MODE 时默认为 ACCESS EXCLUSIVE。
UPDATE(不修改键值)这个写入变体在目标表上取得 ROW EXCLUSIVE;对已有行的锁另按实际动作取得。
UPDATE(修改键值)这个写入变体在目标表上取得 ROW EXCLUSIVE;对已有行的锁另按实际动作取得。
MERGE … WHEN MATCHED THEN UPDATE(非键)这个写入变体在目标表上取得 ROW EXCLUSIVE;对已有行的锁另按实际动作取得。
MERGE … WHEN MATCHED THEN DELETE / UPDATE(键)这个写入变体在目标表上取得 ROW EXCLUSIVE;对已有行的锁另按实际动作取得。
INSERT … ON CONFLICT DO UPDATE(非键)这个写入变体在目标表上取得 ROW EXCLUSIVE;对已有行的锁另按实际动作取得。
INSERT … ON CONFLICT DO UPDATE(键)这个写入变体在目标表上取得 ROW EXCLUSIVE;对已有行的锁另按实际动作取得。
INSERT(外键检查)原始写入命令在写入目标表上取得 ROW EXCLUSIVE;外键检查的 ROW SHARE 与 FOR KEY SHARE 则作用于被引用的表和行,不能混为同一对象。
UPDATE(外键检查)原始写入命令在写入目标表上取得 ROW EXCLUSIVE;外键检查的 ROW SHARE 与 FOR KEY SHARE 则作用于被引用的表和行,不能混为同一对象。
COPY … FROM(外键检查)原始写入命令在写入目标表上取得 ROW EXCLUSIVE;外键检查的 ROW SHARE 与 FOR KEY SHARE 则作用于被引用的表和行,不能混为同一对象。
MERGE(外键检查)原始写入命令在写入目标表上取得 ROW EXCLUSIVE;外键检查的 ROW SHARE 与 FOR KEY SHARE 则作用于被引用的表和行,不能混为同一对象。

链接指向本站 PostgreSQL 18 的 SQL 命令百科。命令也可能取得其他锁,查看完整命令关联表。

其他锁模式

数据来源

当前查看 PostgreSQL 18,采样构建 REL_18_STABLE · 753057e340da。冲突关系与命令行为按该版本的文档和源码整理。命令链接进入本站 SQL 命令百科,并保留所选版本。

本站显式锁定手册 · 官方手册

查看采样源码与构建依据

资料核验日期:2026-09-26。