【发布时间】:2018-03-27 14:18:15
【问题描述】:
我进入了 psql 命令行模式并输入了正确的数据库,我可以列出所有的表。
现在,我尝试了以下命令:
copy some_table_name1 to '/var/lib/pgsql/csv_exports/some_table_name1.csv' csv header
copy some_table_name2 to '/var/lib/pgsql/csv_exports/some_table_name2.csv' csv header
等等……
命令后没有错误消息或任何内容,我使用 tab 按钮确保我始终引用正确的表名。
对所有表执行此操作后,我转到目录,根本没有文件。
我做错了吗?
编辑:我应该澄清一下,我正在通过在服务器计算机上使用 putty 和 WINSCP 来查找该目录。我在其中运行 psql 命令的位置相同。
【问题讨论】:
-
没有错误信息?通常这个命令应该这样做:
COPY table TO '/tmp/table.csv' DELIMITER ',' CSV HEADER另外,请确保您没有在客户端计算机中查看/var/lib/;-) 为了让您使用COPY在客户端中拥有文件,您必须使用标准输出。让我知道它是否是您正在寻找的。span> -
使用这种方法你会得到什么?
$ psql yourdb -c "COPY yourtable TO STDOUT DELIMITER ',' CSV HEADER" > output.csv