Ввод вывода из Postgres\i в файл?

Быстрый вопрос (надеюсь!): если я использую \i для подачи входного файла в psql, могу ли я получить результат из запросов, которые будут сохранены в файл? Если да, то как? Спасибо!!

Ответ 2

Использование \o, как рекомендовано другими, является хорошим решением. Просто для удовольствия, однако, другой способ сделать это - связать входной файл с psql из командной строки, а не с помощью команды \i. Затем вы можете перенаправить вывод в другой файл. Например:

psql < input.sql > output.txt

У этого есть некоторые интересные побочные эффекты. Например, если у вас включена синхронизация (\timing on), то использование \o не приведет к передаче результатов синхронизации в выходной файл, но будет перенаправление. То же самое с операторами \echo.

Ответ 3

Конечно, может:

dbname=> \o /home/outputfile.csv
dbname=> select * from table;
dbname=> \q

Выход будет передан в файл.