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

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

据我所知,能做到这一点的唯一说法是

pg_dump -D -a -t zones_seq interway > /tmp/zones_seq.sql

我应该为每个表运行这个语句,还是有一种方法可以运行类似的语句,将所有选择的表导出到一个大的 sql 中。上面的 pg _ dump 不导出仅插入的表模式,我需要两者

如果你能帮忙,我会很感激的。

132368 次浏览

来自 手动操作: “ 可以通过编写多个 t 开关来选择多个表

所以你需要列出你所有的桌子

pg_dump --column-inserts -a -t zones_seq -t interway -t table_3 ... > /tmp/zones_seq.sql

注意,如果有几个表具有相同的前缀(或后缀) ,也可以使用通配符通过 -t参数选择它们:

而且,表参数根据 psql 的 d 命令所使用的相同规则被解释为模式

如果这些特定的表匹配特定的 模式,则可以将其与 pg_dump中的 -t选项一起使用。

pg_dump -D -a -t zones_seq -t interway -t "<pattern>" -f /tmp/zones_seq.sql <DBNAME>

例如,要转储以“ test”开头的表,可以使用

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