描述所有表格到文本文件

时间:2014-04-28 07:10:42

标签: postgresql

如何描述数据库中的每个表并将所有结果导出到文本文件? E.g。

\o describe.txt
\d+ MY_TABLE
\o

但是对于每个表,每次都将输出附加到文本文件中。

2 个答案:

答案 0 :(得分:2)

我想你可能想要:

\dt+ *.*

即“所有模式中的所有表”。如果您想要包含视图,请使用\d代替\dt

我不禁想知道......为什么?如果您正在为文档执行此操作,请查看SchemaSpy作为更好的替代方案。

答案 1 :(得分:0)

通过 SQL 查询获取输出,请参见以下两种方式:

(1) 所有列名和数据类型以逗号分隔:

SELECT     
table_name, 
string_agg(column_name,',') as "Columns", 
string_agg(data_type ,',') as "DataTypes"
 FROM 
 information_schema.columns
 where "table_schema"='public'
  group by table_name

(2) 所有列名与数据类型分开

SELECT 
table_name, 
column_name as "Columns", 
data_type as "DataTypes"
 FROM 
 information_schema.columns
 where "table_schema"='public'
  order by table_name,column_name