使用pg_dump,导出一个表的所有表和数据的整个模式

时间:2018-04-05 17:48:54

标签: postgresql pg-dump

我想使用pg_dump导出整个架构以及单个表中的数据。我知道我可以这样做:

pg_dump -s mydatabase > db.sql; pg_dump -a -t some_table mydatabase >> db.sql

然而,它有点不优雅,下半场的输出重复了上半场已经提供的很多设置和评论,如:

-- Dumped from database version 9.6.8
-- Dumped by pg_dump version 9.6.8

SET statement_timeout = 0;
SET lock_timeout = 0;
...

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

使用两者是受限制的

t=# \! pg_dump -d t -h localhost -p 5400 -s -a -t so12
pg_dump: options -s/--schema-only and -a/--data-only cannot be used together
很明显 - 没有。你必须顺序完成它们......

SET SESSION语句只设置会话"参数" - 他们不会重复数据等 - 为什么你要避免它们?...

我无法想象执行任何更快的命令,例如。与select now()相比:

t=# \timing on
Timing is on.
t=# SET statement_timeout = 0;
SET
Time: 0.312 ms
t=# select now();
             now
------------------------------
 2018-04-01 17:40:37.52727+01
(1 row)

Time: 17.182 ms