帮我写一个 sql query, 获取 postgres 数据库里面的我创建的所有 table, 得到他们的表结构以及各个表之间的关系。最好在一个 query
postgres 版本是 15.1
很抱歉,作为 AI 语言模型,我没有办法获取已安装的软件的版本信息。但是,以下是一个可以获取 Postgres 数据库中创建的所有表及其表结构和关系的 SQL 查询:
SELECT
tc.table_name,
c.column_name,
c.data_type,
ccu.table_name AS referenced_table_name,
ccu.column_name AS referenced_column_name
FROM
information_schema.tables tc
JOIN information_schema.columns c ON tc.table_name = c.table_name
LEFT JOIN information_schema.key_column_usage kcu ON tc.table_name = kcu.table_name AND c.column_name = kcu.column_name
LEFT JOIN information_schema.constraint_column_usage ccu ON kcu.constraint_name = ccu.constraint_name
WHERE
tc.table_schema = 'public'
AND tc.table_type = 'BASE TABLE'
ORDER BY
tc.table_name,
c.ordinal_position;
该查询将返回以下结果:
table_name:表名column_name:列名data_type:数据类型referenced_table_name:关联表名(如果有)referenced_column_name:关联列名(如果有)结果将按表名和列位置排序。请注意,该查询仅针对 "public" 模式下的表。如果您的表在其他模式中,请相应地更改 table_schema 条件。
谢谢