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

我的代码如下:

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

当前回答

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

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;

其他回答

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);

如手册所述。

这是

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

复制(anyql查询datawanttoexport)到' fileablsoutepathwiname '分隔符',' CSV头;

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

从psql命令行:

\COPY my_table TO 'filename' CSV HEADER

结尾没有分号。