从PostgreSQL多次导出到同一个文件

时间:2013-10-01 10:53:55

标签: postgresql csv append

是否可以将表导出到csv,但是可以将多个选择附加到同一个文件中?

我想导出(例如):

SELECT * FROM TABLE WHERE a > 5

然后,后来:

SELECT * FROM TABLE WHERE b > 2

这必须转到同一个文件。

提前致谢!

3 个答案:

答案 0 :(得分:1)

我知道这样做的唯一方法是从命令行重定向输出。

psql -d dbname -t -A -F"," -c "SELECT * FROM TABLE WHERE a > 5" >> output.csv

然后再

psql -d dbname -t -A -F"," -c "SELECT * FROM TABLE WHERE b > 2" >> output.csv

您可以在此处查找命令行选项。

http://www.postgresql.org/docs/9.0/static/app-psql.html

答案 1 :(得分:1)

使用\o <filename>输出到文件。使用SELECT后的所有\o语句都会附加到<file>,直到您将\o设置为其他内容。

答案 2 :(得分:0)

\o\copy结合使用到STDOUT似乎有效。例如:

db=> \o /tmp/test.csv
db=> \copy (select 'foo','bar') to STDOUT with CSV;
db=> \copy (select 'foo','bar') to STDOUT with CSV;
db=> \q

$ cat /tmp/test.csv 
foo,bar
foo,bar