我试图通过命令行导出一个带有标题的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。
psql -h <host> -U <user> -d <dbname> -c "\copy <table_name> FROM '<path to csvfile/file.csv>' with (format csv,header true, delimiter ',');"
其他回答
当我没有权限从Postgres写文件时,我发现我可以从命令行运行查询。
psql -U user -d db_name -c "Copy (Select * From foo_table LIMIT 10) To STDOUT With CSV HEADER DELIMITER ',';" > foo_data.csv
从psql命令行:
\COPY my_table TO 'filename' CSV HEADER
结尾没有分号。
复制(anyql查询datawanttoexport)到' fileablsoutepathwiname '分隔符',' CSV头;
使用这个u也可以导出数据。
COPY命令不是受限制的。限制的是将输出从TO指向除STDOUT之外的任何地方。但是,通过\o命令指定输出文件没有限制。
\o '/tmp/products_199.csv';
COPY products_273 TO STDOUT WITH (FORMAT CSV, HEADER);
对于我使用的9.5版本,它是这样的:
COPY products_273 TO '/tmp/products_199.csv' WITH (FORMAT CSV, HEADER);