我正在尝试将我的Postgres表导出到桌面上的csv,我收到此错误:
错误:无法打开文件“C:\ Users \ blah \ Desktop \ countyreport.csv”进行写入:权限被拒绝
SQL状态:42501
这是我的查询,我认为是正确的语法
COPY countyreport TO 'C:\\Users\\blah\\Desktop\\countyreport.csv' DELIMITER ',' CSV HEADER;
答案 0 :(得分:1)
根据用户手册:
COPY命令中命名的文件由。直接读取或写入 服务器,而不是客户端应用程序。
https://www.postgresql.org/docs/current/static/sql-copy.html
常见的错误是认为文件系统访问将是(客户端)用户的访问,但事实并非如此。将postgresql服务器作为自己的用户运行是正常的。因此,服务器执行的操作将作为客户端的不同OS用户完成。服务器通常作为OS用户postgres
运行。
假设您在本地计算机上运行服务器,那么解决它的最简单方法是让postgres访问您的主目录或桌面。这可以通过更改主目录中的Windows安全设置来完成。
在你这样做之前......停下来想想。这是你想要的?如果服务器正在开发中,那么它将始终在用户的计算机上运行。如果没有,那么您可能需要使用COPY
写入stdout
。 See the manual for information on this.