【发布时间】:2013-10-07 12:06:12
【问题描述】:
是否可以将表格导出到 csv,但将多个选择附加到同一个文件?
我想导出(例如):
SELECT * FROM TABLE WHERE a > 5
然后,稍后:
SELECT * FROM TABLE WHERE b > 2
这必须转到同一个文件。
提前致谢!
【问题讨论】:
标签: postgresql csv append
是否可以将表格导出到 csv,但将多个选择附加到同一个文件?
我想导出(例如):
SELECT * FROM TABLE WHERE a > 5
然后,稍后:
SELECT * FROM TABLE WHERE b > 2
这必须转到同一个文件。
提前致谢!
【问题讨论】:
标签: postgresql csv append
我知道的唯一方法是从命令行重定向输出。
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
您可以在此处查找命令行选项。
【讨论】:
使用\o <filename> 输出到文件。使用 \o 之后的所有 SELECT 语句都将附加到 <file>,直到您将 \o 设置为其他内容。
【讨论】:
将\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
【讨论】: