sql - 我可以使用 sql 查询来获取 PostgreSQL 数据库中所有主键和外键的列表吗
问题描述
我有一个使用 PostgreSQL 数据库的客户端。我是 PostgreSQL 新手,需要一点帮助。我需要从公共模式中的所有表中获取主键和外键列表。数据库中似乎存在不一致的数据。我尝试了其他帖子的查询,但没有成功。当我查看表上的约束时,我可以看到主键和外键。如何使用 SQL 获取相同的信息?
解决方案
使用 information_schema 并限制为public
模式。注意:这只会显示您拥有权限的表。因此,如果您想查看所有内容,您需要以具有足够特权的用户身份执行此操作。
SELECT
constraint_schema,
table_name,
constraint_type,
constraint_name
FROM
information_schema.table_constraints
WHERE
constraint_schema = 'public'
AND constraint_type IN ('FOREIGN KEY', 'PRIMARY KEY')
ORDER BY
table_name,
constraint_type;
推荐阅读
- javascript - 两个数组包含在单个查询谷歌云火库中。应用在搜索中排序的过滤产品
- mysql - 将 SSMS .rpt 文件加载到 MySQL
- reactjs - 在我的 React.js 应用程序中的身份验证页面之外的每个页面上呈现导航栏
- python-3.x - 如何通过 selenium 和 Python3 在 Chrome 下载 (chrome://downloads) 中获取文件的直接下载链接?
- mysql - 如何制作一个包含 mysql、wordpress 和 phpmyadmin 图像的容器?
- reactjs - 如何向 react-router-dom 添加属性?
- angular - Angular Material 选项卡在 ngOnInit 之后导航到选定的选项卡
- excel - 无法获取范围类的 FindNext 属性
- sql - Oracle 查询(PROC)没有给出想要的结果
- modx - Modx 赋予用户添加新用户的权限