将Postgres表格导出为带有标题的CSV文件

我试图通过命令导出一个带标题的PostgreSQL表格到一个CSV文件,但是我得到它导出到CSV文件,但没有标题。 我也需要这些标题。 我的代码如下所示

COPY products_273 to '/tmp/products_199.csv' delimiters','; 
 COPY products_273 TO '/tmp/products_199.csv' DELIMITER ',' CSV HEADER; 

如手册中所述。

从psql命令行:

\将my_table复制到“文件名”csv标题

最后没有分号。

而不仅仅是表名,你也可以写一个查询来获取选定的列数据。

 COPY (select id,name from tablename) TO 'filepath/aa.csv' DELIMITER ',' CSV HEADER; 

具有pipe理员权限

 \COPY (select id,name from tablename) TO 'filepath/aa.csv' DELIMITER ',' CSV HEADER; 

这工作

 psql dbname -F , --no-align -c "SELECT * FROM TABLE" 

当我没有权限从Postgres写出文件时,我发现我可以从命令行运行查询。

 psql -U user -d db_name -c "Copy (Select * From foo_table LIMIT 10) To STDOUT With CSV HEADER DELIMITER ',';" > foo_data.csv 

对于我使用的版本9.5,将会是这样的:

 COPY products_273 TO '/tmp/products_199.csv' WITH (FORMAT CSV, HEADER); 

下面是我如何得到它使用pgsl连接Heroku PG数据库的权力shell:

我必须首先将客户端编码更改为utf8,如下所示: \encoding UTF8

然后将数据转储到CSV文件中:

 \copy (SELECT * FROM my_table) TO C://wamp64/www/spider/chebi2/dump.csv CSV DELIMITER '~' 

我使用〜作为分隔符,因为我不喜欢CSV文件,我通常使用TSV文件,但不会让我添加'\ t'作为分隔符,所以我使用因为它是一个很less使用的string。

将(anysql query datawanttoexport)复制到'fileablsoutepathwihname'分隔符','csv header;

使用这个你也可以导出数据。