在PostgreSQL中选择什么将返回元数据

时间:2016-01-07 22:36:47

标签: postgresql

我需要查询: 所有表格和查看名称 对于每张桌子和查看:他们的架构,描述和&所有列名。 每列:他们的名字,类型和&描述。 同样对于每个表,所有PK:FK关系。

我们有选择,但他们似乎没有完全使用最新版本。例如,我们使用以下内容获取所有表:

SELECT schemaname, tablename from pg_tables order by tablename

我们没有得到所有表格。

谢谢 - 戴夫

1 个答案:

答案 0 :(得分:0)

您可以使用pg_views获取观看次数:

select schemaname, tablename from (
    select schemaname, tablename from pg_tables union all
    select schemaname, viewname from pg_views
) as x
order by tablename

然后使用information_schema.columns获取所有列。例如:

select
    schemaname,
    tablename,
    (
        select array_agg("column_name"::text)
        from information_schema.columns
        where
            table_schema = x.schemaname and
            table_name = x.tablename
    )
from (
    select schemaname, tablename from pg_tables union all
    select schemaname, viewname from pg_views
) as x
order by tablename

information_schema还有其他一些您可能会觉得有用的内容:http://www.postgresql.org/docs/9.1/static/information-schema.html