是否可以将表导出到csv,但是可以将多个选择附加到同一个文件中?
我想导出(例如):
SELECT * FROM TABLE WHERE a > 5
然后,后来:
SELECT * FROM TABLE WHERE b > 2
这必须转到同一个文件。
提前致谢!
答案 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
您可以在此处查找命令行选项。
答案 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