我试图通过命令行导出一个带有标题的PostgreSQL表到CSV文件,但是我把它导出到CSV文件,但没有标题。
我的代码如下:
COPY products_273 to '/tmp/products_199.csv' delimiters',';
我试图通过命令行导出一个带有标题的PostgreSQL表到CSV文件,但是我把它导出到CSV文件,但没有标题。
我的代码如下:
COPY products_273 to '/tmp/products_199.csv' delimiters',';
当前回答
COPY命令不是受限制的。限制的是将输出从TO指向除STDOUT之外的任何地方。但是,通过\o命令指定输出文件没有限制。
\o '/tmp/products_199.csv';
COPY products_273 TO STDOUT WITH (FORMAT CSV, HEADER);
其他回答
COPY products_273 TO '/tmp/products_199.csv' WITH (FORMAT CSV, HEADER);
如手册所述。
下面是我是如何使用pgsl连接到Heroku PG数据库的:
我必须首先将客户端编码更改为utf8,就像这样:\encoding utf8
然后将数据转储到CSV文件:
\copy (SELECT * FROM my_table) TO C://wamp64/www/spider/chebi2/dump.csv CSV DELIMITER '~'
我使用~作为分隔符,因为我不喜欢CSV文件,我通常使用TSV文件,但它不让我添加'\t'作为分隔符,所以我使用~,因为它是一个很少使用的字符。
在pgAdmin中,突出显示您的查询语句,就像您使用F5执行并按F9一样-这将打开文件浏览器,以便您可以选择保存CSV的位置。
如果您使用的是Azure Data Studio,说明在这里:Azure Data Studio:另存为CSV。
我知道这不是一个通用的解决方案,但大多数时候您只是想手动获取文件。
COPY命令不是受限制的。限制的是将输出从TO指向除STDOUT之外的任何地方。但是,通过\o命令指定输出文件没有限制。
\o '/tmp/products_199.csv';
COPY products_273 TO STDOUT WITH (FORMAT CSV, HEADER);
试试这个: “从\tmp\products_199.csv' DELIMITER ',' CSV头'复制products_273”