Postgresql 为Postgres中的特定表和条目创建数据库转储

Postgresql 为Postgres中的特定表和条目创建数据库转储,postgresql,Postgresql,我有一个包含数百个表的数据库,我需要做的是导出指定的表,并将数据的语句插入到一个sql文件中 我所知道的唯一能做到这一点的声明是 pg_dump -D -a -t zones_seq interway > /tmp/zones_seq.sql 我应该为每个表运行此语句,还是有办法运行类似的语句将所有选定的表导出到一个大sql中。上面的pg_dump不会只导出表模式插入,我需要两者 如有任何帮助,我们将不胜感激。右起:“可通过写入多个-t开关选择多个表” 所以你需要列出你所有的表 pg_d

我有一个包含数百个表的数据库,我需要做的是导出指定的表,并将数据的语句插入到一个sql文件中

我所知道的唯一能做到这一点的声明是

pg_dump -D -a -t zones_seq interway > /tmp/zones_seq.sql
我应该为每个表运行此语句,还是有办法运行类似的语句将所有选定的表导出到一个大sql中。上面的pg_dump不会只导出表模式插入,我需要两者

如有任何帮助,我们将不胜感激。

右起:“可通过写入多个-t开关选择多个表”

所以你需要列出你所有的表

pg_dump--列插入-a-t区域\u seq-t interway-t表\u 3…>/tmp/zones_seq.sql
请注意,如果有多个具有相同前缀(或后缀)的表,也可以使用通配符通过
-t
参数选择它们:


“此外,根据psql的\d命令使用的相同规则,表参数被解释为模式”

如果这些特定的表与特定的正则表达式匹配,则可以使用pg_dump中的regex in-t选项

pg_dump -D -a -t zones_seq -t interway -t "<regex>" -f /tmp/zones_seq.sql <DBNAME>
pg_dump-D-a-t zones_seq-t interway-t”“-f/tmp/zones_seq.sql
例如,要转储以“test”开头的表,可以使用

pg_dump -D -a -t zones_seq -t interway -t "^test*" -f /tmp/zones_seq.sql <DBNAME>
pg_dump-D-a-t zones_seq-t interway-t“^test*”-f/tmp/zones_seq.sql

T开关的方式相同,但用于排除表。如果您只需要一个或两个表格等,则可能会很有用。
-D
选项似乎已在第9.1页以后的版本中消失。
-D
选项已被删除。您现在必须使用
--列插入
。请尝试使用pg_dump--主机127.0.0.1--端口5432--用户名“”--列插入--详细--文件“/tmp/”--表“^*”,如果它是正则表达式,不应该是
^test.
而不是
^test*
?它不是正则表达式,它使用postgres的“模式”,所以它应该是
“test*”
:使用正则表达式非常简单,生成的正则表达式无效:量词操作数无效错误。但是正则表达式是正确的。。。只有非常简单的正则表达式才有效