PostgreSQL:将数据导出到csv文件

时间:2017-05-17 11:01:01

标签: postgresql csv

我想将某些PostgreSQL数据库的表中的数据导出到csv文件。 由于标准复制命令不起作用,我尝试了以下内容:

\copy (SELECT * FROM persons) to 'C:\tmp\persons_client.csv' with csv

就像在 http://www.postgresqltutorial.com/export-postgresql-table-to-csv-file/。 路径似乎是正确的;但是,我收到错误消息

FEHLER:  Syntaxfehler bei »\«
LINE 1: \copy [...]

表示复制语句前面的“\”符号出现语法错误。 我错过了什么想法?

顺便说一句,这不是我目前面临的真正问题。 实际上我试图导入一个csv文件,但不幸的是我似乎没有足够的权限,当只使用“COPY”时,权限将被拒绝。所以我尝试使用“\ copy”导入文件但仍然得到尝试使用“\ copy”导出时得到的相同错误消息。

3 个答案:

答案 0 :(得分:0)

\copy (SELECT * FROM persons) to 'C:\tmp\persons_client.csv' with csv无法在pgAdmin中使用,因为\copypslq metacommand

  

执行前端(客户端)副本。这是一个运行的操作   SQL COPY命令,而不是服务器读取或写入   指定的文件,psql读取或写入文件并路由数据   服务器和本地文件系统之间。这意味着该文件   可访问性和权限是本地用户的权限,而不是   服务器,并且不需要SQL超级用户权限。

答案 1 :(得分:0)

PgAdminpsql上发出此命令:

COPY (SELECT * FROM persons) to 'C:\\tmp\\persons_client.csv' with csv;

不要忘记逃避Windows文件分隔符。

答案 2 :(得分:0)

\COPY (SELECT * FROM persons) to 'persons_client.csv' with csv;