我想将某些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”导出时得到的相同错误消息。
答案 0 :(得分:0)
\copy (SELECT * FROM persons) to 'C:\tmp\persons_client.csv' with csv
无法在pgAdmin中使用,因为\copy
是pslq metacommand:
执行前端(客户端)副本。这是一个运行的操作 SQL COPY命令,而不是服务器读取或写入 指定的文件,psql读取或写入文件并路由数据 服务器和本地文件系统之间。这意味着该文件 可访问性和权限是本地用户的权限,而不是 服务器,并且不需要SQL超级用户权限。
答案 1 :(得分:0)
在PgAdmin
或psql
上发出此命令:
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;