【发布时间】:2011-04-25 18:09:46
【问题描述】:
快速问题(我希望!):如果我使用 \i 将输入文件提供给 psql,我可以将查询的输出保存到文件中吗?如果是这样,怎么做?谢谢!!
【问题讨论】:
标签: sql postgresql
快速问题(我希望!):如果我使用 \i 将输入文件提供给 psql,我可以将查询的输出保存到文件中吗?如果是这样,怎么做?谢谢!!
【问题讨论】:
标签: sql postgresql
当然可以:
dbname=> \o /home/outputfile.csv
dbname=> select * from table;
dbname=> \q
输出将被流式传输到文件。或者
dbname=> \o
停止流式传输到文件。
【讨论】:
按照其他人的建议,使用\o 是一个很好的解决方案。不过,只是为了好玩,另一种方法是将输入文件从命令行通过管道传输到psql,而不是使用\i 命令。然后您可以将输出重定向到另一个文件。例如:
psql < input.sql > output.txt
这有一些有趣的副作用。例如,如果您打开了计时 (\timing on),那么使用 \o 将不会导致计时结果通过管道传输到输出文件,但重定向会。与\echo 语句相同。
【讨论】:
Based on the documentation,\o 用于将输出定向到文件。
【讨论】:
\echo 输出:-)。