2016-01-07 55 views
0

我需要查詢: 所有表&視圖名稱 對於每個表&圖:其架構,描述,&所有列名。 對於每列:它們的名稱,類型,&說明。 也爲每個表,所有PK:FK關係。什麼PostgreSQL中選擇將返回元數據

我們有選擇,但他們似乎沒有完全在最新版本上工作。例如,我們得到所有使用的表格:

SELECT schemaname, tablename from pg_tables order by tablename 

而且我們沒有得到所有表格。

謝謝 - 戴夫

回答

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

相關問題