我试图通过命令行导出一个带有标题的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 products_273 TO '/tmp/products_199.csv' WITH (FORMAT CSV, HEADER);
如手册所述。
其他回答
最简单的方法(使用psql)似乎是使用——csv标志:
psql --csv -c "SELECT * FROM products_273" > '/tmp/products_199.csv'
COPY products_273 TO '/tmp/products_199.csv' WITH (FORMAT CSV, HEADER);
如手册所述。
当我没有权限从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 dbname -F , --no-align -c "SELECT * FROM TABLE"
在pgAdmin中,突出显示您的查询语句,就像您使用F5执行并按F9一样-这将打开文件浏览器,以便您可以选择保存CSV的位置。
如果您使用的是Azure Data Studio,说明在这里:Azure Data Studio:另存为CSV。
我知道这不是一个通用的解决方案,但大多数时候您只是想手动获取文件。