将Postgres表导出到csv

时间:2016-09-06 16:10:39

标签: postgresql csv

我正在尝试将我的Postgres表导出到桌面上的csv,我收到此错误:

  

错误:无法打开文件“C:\ Users \ blah \ Desktop \ countyreport.csv”进行写入:权限被拒绝
  SQL状态:42501

这是我的查询,我认为是正确的语法

COPY countyreport TO 'C:\\Users\\blah\\Desktop\\countyreport.csv' DELIMITER ',' CSV HEADER;

1 个答案:

答案 0 :(得分:1)

根据用户手册:

  

COPY命令中命名的文件由。直接读取或写入   服务器,而不是客户端应用程序。

https://www.postgresql.org/docs/current/static/sql-copy.html

常见的错误是认为文件系统访问将是(客户端)用户的访问,但事实并非如此。将postgresql服务器作为自己的用户运行是正常的。因此,服务器执行的操作将作为客户端的不同OS用户完成。服务器通常作为OS用户postgres运行。

假设您在本地计算机上运行服务器,那么解决它的最简单方法是让postgres访问您的主目录或桌面。这可以通过更改主目录中的Windows安全设置来完成。

在你这样做之前......停下来想想。这是你想要的?如果服务器正在开发中,那么它将始终在用户的计算机上运行。如果没有,那么您可能需要使用COPY写入stdoutSee the manual for information on this.