pg_constraint
目录pg_constraint存储表上的检查约束、非空约束、主键约束、唯一约束、外键约束和排他约束。(列约束不会被特殊对待。每一个列约束都等价于某种表约束。) 用户定义的约束触发器(使用CREATE CONSTRAINT TRIGGER创建)也会在这个表中产生一项。 域上的检查约束也存储在这里。
英文手册覆盖始于 PostgreSQL 7.4. 来源历史与运行验证各自保留独立版本边界。
当前阅读 PG 18·选择有来源记录的版本
- kind
- catalog
- lang
- en
- measured attributes
- true
- metadata release
- 18.6
- runtime verified
- false
- source
- english-manual
版本定义 PG 18
目录pg_constraint存储表上的检查约束、非空约束、主键约束、唯一约束、外键约束和排他约束。(列约束不会被特殊对待。每一个列约束都等价于某种表约束。) 用户定义的约束触发器(使用CREATE CONSTRAINT TRIGGER创建)也会在这个表中产生一项。 域上的检查约束也存储在这里。
目录列
| 列 | 类型 | 可空性 | 描述 |
|---|---|---|---|
| oid | oid | 非空 | 行标识符 |
| conname | name | 非空 | 约束名称(不一定唯一!) |
| connamespace | oid | 非空 | 包含此约束的名字空间的OID |
| contype | char | 非空 | c = 检查约束,f = 外键约束,n = 非空约束,p = 主键约束,u = 唯一约束,t = 约束触发器,x = 排他约束 |
| condeferrable | bool | 非空 | 该约束是否能被延迟? |
| condeferred | bool | 非空 | 该约束是否默认被延迟? |
| conenforced | bool | 非空 | 该约束是否会被强制执行? |
| convalidated | bool | 非空 | 该约束是否已经验证? |
| conrelid | oid | 非空 | 该约束所在的表,如果不是表约束则为零 |
| contypid | oid | 非空 | 该约束所在的域,如果不是域约束则为0 |
| conindid | oid | 非空 | 如果该约束是唯一、主键、外键或排他约束,此列表示支持此约束的索引,否则为零 |
| conparentid | oid | 非空 | 如果这是一个分区中的约束,则是父分区表中对应的约束;否则为零 |
| confrelid | oid | 非空 | 如果此约束是一个外键约束,此列为被引用的表,否则为零 |
| confupdtype | char | 非空 | 外键更新动作代码:a = 无动作,r = 限制,c = 级联,n = 置空,d = 置为默认值 |
| confdeltype | char | 非空 | 外键删除动作代码:a = 无动作,r = 限制,c = 级联,n = 置空,d = 置为默认值 |
| confmatchtype | char | 非空 | 外键匹配类型:f = 完全,p = 部分,s = 简单 |
| conislocal | bool | 非空 | 此约束定义在关系本地。注意一个约束可以同时是本地定义和继承。 |
| coninhcount | int2 | 非空 | 该约束直接继承自多少个祖先。祖先数量非零的约束不能被删除,也不能被重命名。 |
| connoinherit | bool | 非空 | 为真表示此约束被定义在关系本地。它是一个不可继承约束。 |
| conperiod | bool | 非空 | 如果该约束被定义为 WITHOUT OVERLAPS(主键或唯一约束)或 PERIOD(外键),则为真。 |
| conkey | int2[] | 可空 | 如果是一个表约束(包括外键但不包括约束触发器),此列是被约束列的列表 |
| confkey | int2[] | 可空 | 如果是一个外键,此列是被引用列的列表 |
| conpfeqop | oid[] | 可空 | 如果是一个外键,此列是用于PK = FK比较的等值操作符的列表 |
| conppeqop | oid[] | 可空 | 如果是一个外键,此列是用于PK = PK比较的等值操作符的列表 |
| conffeqop | oid[] | 可空 | 如果是一个外键,此列是用于FK = FK比较的等值操作符的列表 |
| confdelsetcols | int2[] | 可空 | 如果外键具有SET NULL或SET DEFAULT删除动作,则这里列出将被更新的列。如果为 NULL,则会更新所有引用列。 |
| conexclop | oid[] | 可空 | 如果是排他约束或 WITHOUT OVERLAPS 主键/唯一约束,则这里列出每列的排他操作符。 |
| conbin | pg_node_tree | 可空 | 如果是一个检查约束,此列是表达式的一个内部表示。建议使用 pg_get_constraintdef()提取检查约束的定义。 |
比较版本
完整来源事实
runtime columns
oid, conname, connamespace, contype, condeferrable, condeferred, conenforced, convalidated, conrelid, contypid, conindid, conparentid, confrelid, confupdtype, confdeltype, confmatchtype, conislocal, coninhcount, connoinherit, conperiod, conkey, confkey, conpfeqop, conppeqop, conffeqop, confdelsetcols, conexclop, conbin
来源引用
定义来源
center · PostgreSQL 18 · english-manuals:3228acb54b2d8175450a80630d8034e7e77963d9cb2978687ec81601e837adaf
正文语言: zh-Hans · 2026-09-27@419045e