如何从PostgreSQL转储表的一部分?

我有一个多Gb表(包含某些事件的日志)的PostgreSQL数据库。 我需要把最新的事件传给分析师 – 比方说,他只需要上个月的事件。

我怎样才能产生一个转储只有那些有说, created_at > '2012-05-01'

另一种方法是使用COPY\copypsql命令),如下所示:

 COPY (SELECT * FROM big_table WHERE created_at > '2012-05-01') TO '/path/to/a/dump/file'; 

在网上find一个可行的解决scheme: http : //www.dbforums.com/postgresql/1650545-create-sql-insert-statement-pg_dump-using-select-query.html#post6435208

psql -c "COPY (SELECT * FROM my_table WHERE created_at > '2012-05-01') TO STDOUT;" source_db | psql -c "COPY my_table FROM STDIN;" target_db