# 52.13.pg_约束

目录pg_约束在表上存储检查、主键、唯一、外键和排除约束。(列约束不是特别处理的。每个列约束都相当于某个表约束。)非空约束在pg_属性目录,不在这里。

用户定义的约束触发器(使用创建约束触发器)也会在本表中产生一个条目。

域上的检查约束也存储在这里。

表52.13.pg_约束

列类型

描述
老年人 老年人

行标识符
康纳姆 名称

约束名称(不一定是唯一的!)
康纳空间 老年人(参考文献)pg_名称空间.老年人)

包含此约束的命名空间的OID
contype 烧焦

c=检查约束,f=外键约束,p=主键约束,u=唯一约束,t=约束触发器,十、=排除约束
可冷凝 布尔

限制是否可以推迟?
屈尊 布尔

默认情况下是否延迟约束?
证实 布尔

约束是否已验证?目前,只能对外键和检查约束设置为false
康雷利德 老年人(参考文献)pg_类.老年人)

此约束所在的表;如果不是表约束,则为零
孔型 老年人(参考文献)pg_型.老年人)

此约束所在的域;如果不是域约束,则为零
科宁迪德 老年人(参考文献)pg_类.老年人)

支持此约束的索引,如果它是唯一的、主键、外键或排除约束;否则零
conparentid 老年人(参考文献)pg_约束.老年人)

父分区表的相应约束(如果这是分区上的约束);否则零
交谈 老年人(参考文献)pg_类.老年人)

如果是外键,则为引用的表;否则零
confupdtype 烧焦

外键更新操作代码:A.=不采取行动,r限制,c=级联,n=设置为空,d=设置默认值
confdeltype 烧焦

外键删除操作代码:A.=不采取行动,r限制,c=级联,n=设置为空,d=设置默认值
confmatchtype 烧焦

外键匹配类型:f=满,p=部分,s=简单
圆锥形 布尔

该约束是为关系在本地定义的。请注意,可以同时在本地定义和继承约束。
科宁伯爵 int4

此约束具有的直接继承祖先数。不能删除或重命名祖先数非零的约束。
康奈赫利特 布尔

该约束是为关系在本地定义的。这是一个不可继承的约束。
康基 int2[](参考文献)pg_属性.阿特纳姆)

如果是表约束(包括外键,但不包括约束触发器),则显示受约束列的列表
confkey int2[](参考文献)pg_属性.阿特纳姆)

如果是外键,则显示引用列的列表
康普费库普 oid[](参考文献)pg_操作员.老年人)

如果是外键,则列出用于PK=FK比较的相等运算符
康佩库普 oid[](参考文献)pg_操作员.老年人)

如果是外键,则列出用于PK=PK比较的相等运算符
conffeqop oid[](参考文献)pg_操作员.老年人)

如果是外键,则显示用于FK=FK比较的相等运算符列表
conexclop oid[](参考文献)pg_操作员.老年人)

如果是排除约束,则显示每列排除运算符的列表
康宾 pg_节点_树

如果是检查约束,则为表达式的内部表示形式。(建议使用pg_get_constraintdef()提取检查约束的定义。)

在排除约束的情况下,康基仅对作为简单列引用的约束元素有用。在其他情况下,0会出现在康基必须查阅相关索引,以发现受约束的表达式。(康基因此,其内容与pg_指数.英基用于索引。)

# 笔记

pg_班。重新检查需要与此表中每个关系的检查约束条目数一致。