如何保存所有psql查询和结果的日志

时间:2014-07-02 15:04:47

标签: sql psql

这个问题类似于: psql - write a query and the query's output to a file

但是,它们的语法不起作用。

当我从命令行打开psql会话时,我想保存发送的查询和结果。

以下代码保存查询,但不输出:

psql -h host -U username -p port -d database -L ~/file_to_save_output.txt

1 个答案:

答案 0 :(得分:1)

您可以使用下面的STDOUT符号重定向输出(>)。重定向适用于Unix和Windows命令提示符。

psql -h host -U username -p port -d database -L ~/file_to_save_output.txt > output.txt

来自Postgres Doc

  

- 回波查询

     

将发送到服务器的所有SQL命令也复制到标准输出。   这相当于将变量ECHO设置为查询。

因此,为了将查询+查询结果提供给单个文件

psql -h host -U username -p port -d database --echo-queries -L output_queries_and_results.txt

此外,您可以将查询和查询结果保存在单独的文件中

psql -h host -U username -p port -d database --echo-queries -L output_queries_only.txt -o output_results_only.txt

注意:第一种方法仍会在终端中显示查询和查询结果,第二种方法会将所有结果输出到文件中,并且不会在终端中显示。