暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

【学习笔记】mogdb参考指南-系统表PG_CONSTRAINT

原创 哇哈哈 2022-12-15
393

PG_CONSTRAINT

PG_CONSTRAINT系统表存储表上的检查约束、主键和唯一约束。

表 1 PG_CONSTRAINT字段

名称类型描述
oidoid行标识符(隐含属性,必须明确选择)。
connamename约束名称(不一定是唯一的)。
connamespaceoid包含这个约束的名称空间的OID。
contype"char"- c = 检查约束
- p = 主键约束
- u = 唯一约束
- t = 触发器约束
condeferrableboolean这个约束是否可以推迟。
condeferredboolean缺省时这个约束是否可以推迟。
convalidatedboolean约束是否有效。目前,只有外键和CHECK约束可将其设置为FALSE。
conrelidoid这个约束所在的表;如果不是表约束则为0。
contypidoid这个约束所在的域;如果不是一个域约束则为0。
conindidoid与约束关联的索引ID。
confrelidoid如果是外键,则为参考的表;否则为0。
confupdtype"char"外键更新动作代码。
- a = 没动作
- r = 限制
- c = 级联
- n =设置为null
- d =设置为缺省
confdeltype"char"外键删除动作代码。
- a = 没动作
- r = 限制
- c = 级联
- n =设置为null
- d =设置为缺省
confmatchtype"char"外键匹配类型。
- f = 全部
- p = 部分
- u = 未指定(在f的基础上允许匹配NULL值)。
conislocalboolean是否是为关系创建的本地约束。
coninhcountinteger约束直接继承父表的数目。继承父表数非零时,不能删除或重命名该约束。
connoinheritboolean是否可以被继承。
consoftboolean是否为信息约束(Informational Constraint)。
conoptboolean是否使用信息约束优化执行计划。
conkeysmallint[]如果是表约束,则是约束控制的字段列表。
confkeysmallint[]如果是一个外键,是参考的字段的列表。
conpfeqopoid[]如果是一个外键,是做PK=FK比较的相等操作符ID的列表。
conppeqopoid[]如果是一个外键,是做PK=PK比较的相等操作符ID的列表。
conffeqopoid[]如果是一个外键,是做FK=FK比较的相等操作符ID的列表。由于当前不支持外键,所以值为空。
conexclopoid[]如果是一个排他约束,是列的排他操作符ID列表。
conbinpg_node_tree如果是检查约束,那就是其表达式的内部形式。
consrctext如果是检查约束,则是表达式的人类可读形式。
conincludingsmallint[]不用做约束,但是会包含在INDEX中的属性列。

img 须知:

  • consrc在被引用的对象改变之后不会被更新,它不会跟踪字段的名称修改。与其依赖这个字段,最好还是使用pg_get_constraintdef()来抽取一个检查约束的定义。
  • pg_class.relchecks需要和在此表上为给定关系找到的检查约束的数目一致。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论