【问题标题】:Export from PostgreSQL multiple times to same file多次从 PostgreSQL 导出到同一个文件
【发布时间】:2013-10-07 12:06:12
【问题描述】:

是否可以将表格导出到 csv,但将多个选择附加到同一个文件?

我想导出(例如):

SELECT * FROM TABLE WHERE a > 5

然后,稍后:

SELECT * FROM TABLE WHERE b > 2

这必须转到同一个文件。

提前致谢!

【问题讨论】:

    标签: postgresql csv append


    【解决方案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

    【讨论】:

      【解决方案2】:

      使用\o <filename> 输出到文件。使用 \o 之后的所有 SELECT 语句都将附加到 <file>,直到您将 \o 设置为其他内容。

      【讨论】:

        【解决方案3】:

        \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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-05-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多