如何表导出为CSV与PostgreSQL的标题?
-
13-09-2019 - |
题
我试图用标题导出PostgreSQL表到CSV通过命令行的文件,但是我把它导出为CSV文件,但没有标题。
我的代码如下所示:
COPY products_273 to '/tmp/products_199.csv' delimiters',';
其他提示
从psql的命令行:
\COPY my_table TO 'filename' CSV HEADER
没有分号结尾。
,而不是仅仅表名,你也可以编写一个查询只获得所选列的数据。
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;
当我没有权限从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"
有关9.5版本我用,这将是这样的:
COPY products_273 TO '/tmp/products_199.csv' WITH (FORMAT CSV, HEADER);
此溶液用\copy
为我工作。
psql -h <host> -U <user> -d <dbname> -c "\copy <table_name> FROM '<path to csvfile/file.csv>' with (format csv,header true, delimiter ',');"
下面有我怎样得到的使用pgsl connnect到Heroku的PG数据库工作电源壳:
我不得不先更改客户端编码UTF8这样的:\encoding UTF8
然后,将数据转储到一个CSV文件这样的:
\copy (SELECT * FROM my_table) TO C://wamp64/www/spider/chebi2/dump.csv CSV DELIMITER '~'
我用〜作为分隔符,因为我不喜欢CSV文件,我通常使用TSV文件,但它不会让我添加“\ t”作为分隔符,所以我用的〜,因为它很少使用characeter。
拷贝(anysql查询datawanttoexport)为 'fileablsoutepathwihname' 分隔符 '' CSV标题;
使用本u能也导出数据。
我张贴这个答案,因为没有这里给出其他的答案居然为我工作。我不能使用COPY
从内部Postgres的,因为我没有正确的权限。所以选择“导出网格行”并保存的输出作为UTF-8。
这是@布赖恩给出的psql
版本还没有为我工作,出于不同的原因。它不工作的原因是显然的Windows命令提示符(我使用的是Windows)与自身的编码插手左右。我一直得到此错误:
错误:在编码序列的字节0×81“WIN1252”字符不具有等效于编码“UTF8”
我结束了使用的解决方案是写一个读取CSV文件并发出INSERT语句直接进入我的Postgres表短JDBC脚本(爪哇)。这个工作,但命令提示也会工作,如果不是因为改变编码。