postgresql - \copy 没有这样的文件或目录,即使该文件存在
问题描述
我正在尝试通过 psql 的\copy
命令将一些数据复制到 csv 文件中。
我尝试使用的命令是
\copy (
<some query here>
) to '/Users/tomcaflisch/Downloads/tasks_data.csv' delimiter ',' with csv;
我得到的错误是:
/Users/tomcaflisch/Downloads/tasks_data.csv: No such file or directory
我验证了文件存在并且是可写的。
ls -al /Users/tomcaflisch/Downloads/tasks_data.csv
-rwxrwxrwx 1 tomcaflisch staff 0 Jul 10 13:58 /Users/tomcaflisch/Downloads/tasks_data.csv
如果我更改为 `...to '/tmp/tasks_data.csv' delimiter ',' with csv;
相反,我得到了错误
ERROR: syntax error at end of input
LINE 1: ... and t.run_id = r.run_id ) TO STDOUT delimiter ',' with csv;
解决方案
那么语法错误是由于这个:
to '/Users/tomcaflisch/Downloads/tasks_data.csv' delimiter ',' with csv;
--It should be:
to '/Users/tomcaflisch/Downloads/tasks_data.csv' WITH delimiter ',' csv;
--Or the new style:
to '/Users/tomcaflisch/Downloads/tasks_data.csv' WITH (delimiter ',', format csv);
尝试使用固定版本,看看它是否适用于 /tmp 文件,然后是 /users/* 文件。如果不适用于 /Users/* 文件,则爬上路径以查看每个目录级别的权限是否有问题。