我想将一个postgresql表导出到一个csv文件。 我尝试了两种方法,但是由于不同的原因,两种方法都不成功。
在第一种情况下,您可以看到我的跑步情况和得到的吼叫:
COPY demand.das_april18_pathprocess TO '/home/katerina/das_april18_pathprocess.csv' DELIMITER ',' CSV HEADER;
No such file or directory
SQL state: 58P01
我需要提到的是,在/home/katerina/
位置中,我创建了一个名为das_april18_pathprocess.csv
的空文件,为此我修改了权限设置以允许进行读取和写入。
第二次尝试执行查询时没有出现任何错误,但是我看不到csv文件。我运行的命令如下:
COPY demand.das_april18_pathprocess TO '/tmp/das_april18_pathprocess.csv' DELIMITER ',' CSV HEADER;
在/ tmp目录中没有cvs文件。
任何有关如何以任何方式将表导出到csv文件的建议都非常感谢!
答案 0 :(得分:1)
啊,您遇到一个常见问题-您正在服务器的文件系统上而不是本地文件系统上创建文件。可能会很痛苦。
但是,您可以COPY TO STDOUT
,然后重定向结果。
如果您使用的是Linux或其他Unix,最简单的方法是从命令行:
$ psql <connection options> -c "COPY demand.das_april18_pathprocess TO STDOUT (FORMAT CSV)" > das_april18_pathprocess.csv
答案 1 :(得分:0)
copy ( select * from demand.das_april18_pathprocess) to '/home/katerina/das_april18_pathprocess.csv' with CSV header ;