我试图通过命令行导出一个带有标题的PostgreSQL表到CSV文件,但是我把它导出到CSV文件,但没有标题。

我的代码如下:

COPY products_273 to '/tmp/products_199.csv' delimiters',';

当前回答

试试这个: “从\tmp\products_199.csv' DELIMITER ',' CSV头'复制products_273”

其他回答

试试这个: “从\tmp\products_199.csv' DELIMITER ',' CSV头'复制products_273”

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

如手册所述。

最简单的方法(使用psql)似乎是使用——csv标志:

psql --csv -c "SELECT * FROM products_273" > '/tmp/products_199.csv'

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

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

除了表名之外,还可以编写查询来只获取选定的列数据。

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

具有管理员权限

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