【发布时间】:2017-10-16 19:19:51
【问题描述】:
我想将某个 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”导出时仍然收到相同的错误消息。
【问题讨论】:
-
你必须在
psql中运行它——它是这个特定的客户端元命令,而不是一个 sql -
我必须这样做吗?我正在使用 pgAdmin 4。如果我仍然必须在 psql 中运行它,我究竟需要改变什么?
-
`psql -c "\copy (SELECT * FROM people) to 'C:\tmp\persons_client.csv' with csv" 应该可以完美工作,并且 pgadmin 在某处有自己的保存到 csv 的功能
-
问题是,为了将来的目的,我将不得不自动导入/导出大量手动无法完成的文件^^
-
另一个使用 psql,而不是 pgadmin 的参数
标签: postgresql csv