#1 楼
可以通过pg_catalog.pg_constraint
检索约束。评论
注意pg_catalog.pg_constraint不包含NOT NULL约束。
–路易斯·德·索萨(Luísde Sousa)
19年7月24日在8:30
#2 楼
在psql
命令行中,此信息在通过\d+
命令获得的表格中。 d+
还告知NOT NULL
约束,这在pg_catalog.pg_constraint
表中不存在。一个例子:# \d+ observations.stream
Table "observations.stream"
Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
--------+-------------------+-----------+----------+---------+----------+--------------+---------------------------------------------
id | integer | | not null | | plain | |
name | character varying | | not null | | extended | | This should be a table in the import schema
min_id | integer | | not null | | plain | |
about | character varying | | not null | | extended | |
Indexes:
"stream_pkey" PRIMARY KEY, btree (id)
"stream_name_key" UNIQUE CONSTRAINT, btree (name)
Check constraints:
"stream_id_check" CHECK (id > 0)
Referenced by:
TABLE "profile" CONSTRAINT "profile_id_stream_fkey" FOREIGN KEY (id_stream) REFERENCES stream(id)
这里的警告是,您没有以这种方式获得所有约束的名称。
评论
我在您发布的输出中看到了约束名称。
–超立方体ᵀᴹ
19年7月24日在8:35
评论
链接中的查询是否有用?psql中的\ d +表名
几乎重复:dba.stackexchange.com/questions/36979/retrieving-all-pk-and-fk/…