【问题标题】:Putting output from Postgres \i input to a file?将 Postgres \i 输入的输出放入文件?
【发布时间】:2011-04-25 18:09:46
【问题描述】:

快速问题(我希望!):如果我使用 \i 将输入文件提供给 psql,我可以将查询的输出保存到文件中吗?如果是这样,怎么做?谢谢!!

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    当然可以:

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

    输出将被流式传输到文件。或者

    dbname=> \o
    

    停止流式传输到文件。

    【讨论】:

      【解决方案2】:

      按照其他人的建议,使用\o 是一个很好的解决方案。不过,只是为了好玩,另一种方法是将输入文件从命令行通过管道传输到psql,而不是使用\i 命令。然后您可以将输出重定向到另一个文件。例如:

      psql < input.sql > output.txt
      

      这有一些有趣的副作用。例如,如果您打开了计时 (\timing on),那么使用 \o不会导致计时结果通过管道传输到输出文件,但重定向会。与\echo 语句相同。

      【讨论】:

        【解决方案3】:

        Based on the documentation\o 用于将输出定向到文件。

        【讨论】:

        • 这不会显示我输入文件中的 \echo,但它会抓取其他所有内容。也许其他人知道为什么,但这已经足够了。我应该认为 \o 会是这样做的方法!再次感谢。
        • solution I proposed 将包括\echo 输出:-)。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-04
        • 2017-08-22
        • 2014-10-18
        • 1970-01-01
        • 2016-07-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多