首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何列出PostgreSQL中所有表的所有约束?

如何列出PostgreSQL中所有表的所有约束?
EN

Stack Overflow用户
提问于 2021-09-20 09:01:31
回答 2查看 159关注 0票数 0

如何列出PostgreSQL中所有表的所有约束?

我需要搜索很久以前创建的unique约束,数据库有这么多(600)个表。很难找到。是否有列出所有表的所有constraints的查询

EN

回答 2

Stack Overflow用户

发布于 2021-09-20 10:08:37

您必须参考pg_constraint。

如果您只需要列出contype上的唯一约束过滤器,如下所示:

代码语言:javascript
运行
复制
select * from pg_catalog.pg_constraint pc
where contype = 'u'

这里的文档:https://www.postgresql.org/docs/current/catalog-pg-constraint.html

票数 1
EN

Stack Overflow用户

发布于 2021-09-20 10:42:23

下面的查询将列出PostgreSQL数据库中表的所有约束。你可以在下面试试:

代码语言:javascript
运行
复制
SELECT con.*
FROM pg_catalog.pg_constraint con
    INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
    INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
    WHERE nsp.nspname = '<schema name>'
         AND rel.relname = '<table name>';

替换为您的表名&替换为您的模式名。

它可以在PSQL中查看,如下所示:

代码语言:javascript
运行
复制
d+ <SCHEMA_NAME.TABLE_NAME>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69251692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档