如何从postgresql打印表结构?

svk*_*svk 6 printing postgresql phppgadmin pgadmin

我在浏览器中使用phpPgAdmin,在Windows上使用PgAdmin III.反正有没有为整个数据库打印表结构?

fil*_*rem 6

导出数据库模式的标准方法是pg_dump:

#!/bin/sh
pg_dump --schema-only MYDBNAME > output-file.sql
Run Code Online (Sandbox Code Playgroud)

更好的方法是将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
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢GUI向导,可以在PgAdmin III中生成pg_dump命令:

  • 右键单击对象浏览器中的数据库,选择"备份"
  • 选择目标文件名(常用扩展名为.sql或.txt)
  • 选择"普通"格式.(即文字格式)
  • 在"转储选项#1"选项卡上,勾选"仅架构"
  • 点击"备份"

注意:生成的文件不仅包含表,还包含所有其他对象(视图,函数等).如果您只需要最小的打印输出,则可以在文本编辑器中编辑此文件并删除不需要的东西.只留下"Type:TABLE;" 项目.


omi*_*ron 5

如果你在Windows和pgAdmin上,你应该在某处使用psql C:\Program files\postgresql\<version>\bin\psql.

运行psql,然后\d打印所有表和索引,\d <table_name>并提供有关一个表的详细信息.