You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postgres 15:执行ALTER TYPE添加枚举值是否会获取锁?

PostgreSQL 15中ALTER TYPE ADD VALUE的锁机制说明
  • 执行ALTER TYPE name ADD VALUE ...时会获取锁。
  • 具体锁类型:会持有ACCESS EXCLUSIVE锁,这是PostgreSQL中权限最高的锁级别,持有期间会阻塞所有针对该枚举类型的读写操作,包括查询使用该类型的表、对该类型的其他修改操作等。
  • 锁的持有时长:锁只会在语句执行的极短时间内持有。添加枚举值本质是修改系统目录(如pg_enum表),这个操作是原子性的,完成后会立即释放锁,不会长时间占用。但要注意,如果此时有其他会话在运行使用该枚举类型的长事务(比如未提交的修改、长时间查询),ALTER语句会等待这些事务结束才能获取锁,等待期间会处于排队状态,一旦拿到锁就会快速完成操作并释放。

另外建议:即便锁持有时间短,也尽量在业务低峰期执行该操作,避免短暂阻塞影响正常业务。

内容的提问来源于stack exchange,提问作者Windymelt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 01:33:11