如何描述数据库中的每个表并将所有结果导出到文本文件? E.g。
\o describe.txt
\d+ MY_TABLE
\o
但是对于每个表,每次都将输出附加到文本文件中。
答案 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