如何从PostgreSQL打印表结构?

8
我正在浏览器中使用phpPgAdmin和Windows中的PgAdmin III。有没有办法打印出整个数据库表结构的输出?
3个回答

8

导出数据库模式的标准方式是使用pg_dump

#!/bin/sh
pg_dump --schema-only MYDBNAME > output-file.sql

略微更好的方法是将pg_dump与pg_restore列表过滤相结合:

#!/bin/sh
dump=`mktemp`
list=`mktemp`
pg_dump --schema-only MYDBNAME -Fc -f $dump
pg_restore -l $dump | grep ' TABLE ' > $list
pg_restore -L $list $dump > output-file.sql
rm $list $dump

如果你喜欢使用图形用户界面向导,可以在PgAdmin III中生成pg_dump命令:
  • 在对象浏览器中右键单击数据库,选择“备份”
  • 选择目标文件名(常见扩展名为.sql或.txt)
  • 选择“纯文本”格式。
  • 在“转储选项#1”标签上,勾选“仅模式”
  • 点击“备份”
注意:生成的文件不仅包含表,还包括所有其他对象(视图、函数等)。如果只需要最小的输出,请在文本编辑器中编辑此文件并删除不需要的内容。只留下“Type: TABLE;”项。

应该使用 pg_dump 而不是 psql - user330315

5
如果您使用Windows和pgAdmin,则可以在C:\Program files\postgresql\<版本>\bin\psql中找到psql。
运行psql然后输入\d,将打印所有表格和索引;输入\d <table_name>,将提供有关某个表格的详细信息。

1

您可以根据需要一个一个地执行它们。在pgAdminIII中右键单击一个表,转到“报告”并选择“数据字典报告”。

对于输出格式,选择“XHTML 1.0 Transitional”,选择“嵌入默认样式表”选项,给它一个文件名,然后点击“确定”。

在浏览器中打开XML文件并进行打印。


关于数据,使用for怎么样? - Ajay Takur
有没有编程的方法可以在模式中运行所有表的等效于pgAdminIII“数据字典报告”的内容? - pdog

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接