将 Postgres 表导出到 csv
Posted
技术标签:
【中文标题】将 Postgres 表导出到 csv【英文标题】:Export Postgres table to csv 【发布时间】:2016-09-06 16:10:39 【问题描述】:我正在尝试将我的 Postgres 表导出到我桌面上的 csv 中,但我收到了以下错误:
错误:无法打开文件“C:\Users\blah\Desktop\countyreport.csv”进行写入:权限被拒绝 SQL 状态:42501
这是我的查询,我认为它是正确的语法
COPY countyreport TO 'C:\\Users\\blah\\Desktop\\countyreport.csv' DELIMITER ',' CSV HEADER;
【问题讨论】:
Save PL/pgSQL output from PostgreSQL to a CSV file的可能重复 如果你在psql
中运行它,你需要 \copy
而不是 copy
【参考方案1】:
根据用户手册:
在 COPY 命令中命名的文件由 服务器,而不是客户端应用程序。
https://www.postgresql.org/docs/current/static/sql-copy.html
常见的错误是认为文件系统访问权限是(客户端)用户的,但事实并非如此。以自己的用户身份运行 postgresql 服务器是正常的。因此,服务器执行的操作将作为与客户端不同的操作系统用户来完成。服务器通常以操作系统用户postgres
运行。
假设您在本地计算机上运行服务器,那么修复它的最简单方法是让 postgres 访问您的主目录或桌面。这可以通过更改主目录上的 Windows 安全设置来完成。
在你这样做之前....停下来想一想。这是你想要的?如果服务器正在开发中,那么它将始终在用户的机器上运行。如果没有,那么您可能需要使用COPY
写信给stdout
。 See the manual for information on this.
【讨论】:
以上是关于将 Postgres 表导出到 csv的主要内容,如果未能解决你的问题,请参考以下文章
在 postgres 上将表导出为 CSV,而无需使用“文本到列”
DBeaver,从数据库 Postgres,表结构(属性)导出到文件 .txt