pg_constraint
#目录 pg_constraint
存储表上的检查、主键、唯一、外键和排除约束。(不专门处理列约束。每个列约束都等效于某个表约束。)非空约束表示在 pg_attribute
目录中,不在此处。
用户定义的约束触发器(使用 CREATE CONSTRAINT TRIGGER
创建)也会导致此表中出现一个条目。
域上的检查约束也存储在此处。
表 53.13. pg_constraint
列
列类型 说明 |
---|
行标识符 |
约束名称(不一定唯一!) |
包含此约束的命名空间的 OID |
|
约束是否可推迟? |
约束是否默认推迟? |
约束是否已验证?当前,只有外键和 CHECK 约束才能为 false |
此约束所在的表;如果不是表约束,则为零 |
此约束所在的域;如果不是域约束,则为零 |
支持此约束的索引(如果它是唯一、主键、外键或排除约束);否则为零 |
如果这是分区上的约束,则为父分区表的对应约束;否则为零 |
如果是外键,则为引用的表;否则为零 |
外键更新操作代码: |
外键删除操作代码: |
外键匹配类型: |
此约束是为关系本地定义的。请注意,约束可以同时是本地定义的和继承的。 |
此约束的直接继承祖先数。具有非零祖先数的约束不能被删除或重命名。 |
此约束是为关系本地定义的。它是一个不可继承的约束。 |
如果是一个表约束(包括外键,但不包括约束触发器),则受约束的列列表 |
如果是外键,则引用的列列表 |
如果是外键,列出 PK = FK 比较的相等运算符 |
如果是外键,列出 PK = PK 比较的相等运算符 |
如果是外键,列出 FK = FK 比较的相等运算符 |
如果是具有 |
如果是排除约束,列出每列排除运算符 |
如果是检查约束,表达式的内部表示。(建议使用 |
对于排除约束,conkey
仅对作为简单列引用的约束元素有用。对于其他情况,conkey
中会出现零,并且必须查阅关联索引以发现受约束的表达式。(因此,conkey
的内容与 pg_index
.indkey
对于索引的内容相同。)
pg_class.relchecks
需要与在此表中为每个关系找到的检查约束条目数一致。