2013-10-01 11 views
0

Можно ли экспортировать таблицу в csv, но добавить несколько вариантов в один и тот же файл?Экспорт из PostgreSQL несколько раз в тот же файл

Я хотел бы экспортировать (например):

SELECT * FROM TABLE WHERE a > 5 

Затем, позже:

SELECT * FROM TABLE WHERE b > 2 

Это должно идти в тот же файл.

Заранее благодарен!

ответ

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

Использование \o <filename> для вывода в файл. Все ваши заявления SELECT после использования \o будут добавлены к <file>, пока вы не установите \o на что-то еще.

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 
Смежные вопросы