PostgreSQL 查看表的主外键等约束关系详解
  • 作者:admin
  • 发表时间:2021-05-28 07:51
  • 来源:未知

这篇文章主要介绍了PostgreSQL 查看表的主外键等约束关系详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。

我就废话不多说了,大家还是直接看代码吧~

postgres=# \d+ pg_depend
            Table "pg_catalog.pg_depend"
  Column  | Type  | Modifiers | Storage | Stats target | Description
-------------+---------+-----------+---------+--------------+-------------
 classid   | oid   | not null | plain  |       | 系统OID
 objid    | oid   | not null | plain  |       | 对象OID
 objsubid  | integer | not null | plain  |       |
 refclassid | oid   | not null | plain  |       | 引用系统OID
 refobjid  | oid   | not null | plain  |       | 引用对象ID
 refobjsubid | integer | not null | plain  |       |
 deptype   | "char" | not null | plain  |       | pg_depend类型
Indexes:
  "pg_depend_depender_index" btree (classid, objid, objsubid)
  "pg_depend_reference_index" btree (refclassid, refobjid, refobjsubid)
Has OIDs: no

 

--BTW:OID是Object Identifier的缩写,是对象ID的意思,因为是无符号的4字节类型,不够足够大,所以一般不用来做主键使用,仅系统内部,比如系统表等应用,可以与一些整型数字进行转换。与之相关的系统参数是default_with_oids,默认是off

postgres=# \d pg_constraint
   Table "pg_catalog.pg_constraint"
  Column   |   Type   | Modifiers
---------------+--------------+-----------
 conname    | name     | not null    -- 约束名
 connamespace | oid     | not null    -- 约束所在命名空间的OID
 contype    | "char"    | not null    -- 约束类型
 condeferrable | boolean   | not null    -- 约束是否可以推迟
 condeferred  | boolean   | not null    -- 缺省情况下,约束是否可以推迟
 convalidated | boolean   | not null    -- 约束是否经过验证
 conrelid   | oid     | not null    -- 约束所在的表的OID
 contypid   | oid     | not null    -- 约束所在的域的OID
 conindid   | oid     | not null    -- 如果是唯一、主键、外键或排除约束,则为支持这个约束的索引;否则为0