PostgreSQL 导入 CSV 文件导致语法错误

ant*_*nus 8 postgresql postgresql-8.3

我正在尝试通过“COPY”命令将 CSV 文件导入数据库;但是,我得到了一个(似乎很常见的)错误,我需要成为超级用户,而我应该使用 "\copy" 来代替。但是,在使用 \copy 时,出现语法错误:

ERROR:  syntax error at or near "\"
LINE 1: \copy
Run Code Online (Sandbox Code Playgroud)

插入符号指向“\”。这是我的查询:

\copy tablename(column2, column3, column4, column5) from '/home/uploads/data.csv' WITH DELIMITER ',' CSV HEADER'
Run Code Online (Sandbox Code Playgroud)

我尝试了“复制”和“\复制”。第一个给我一个超级用户错误,后者给我那个语法错误。关于如何修复它的任何想法?让它起作用?

我正在通过 myPgAdmin 的 sql 输入字段执行命令。

我唯一的另一个问题是关于通过 tablename(column2, column3 等导入列。这是正确的语法吗?

a_h*_*ame 8

\copy是一个psql(命令行)命令。它不是常规的 SQL 命令。

您将需要改用 COPY(但这要求文件存在于数据库服务器上)

  • @antjanus:您将使用我提到的 COPY 命令(并且 adam 详细解释了) (2认同)

小智 5

有关 COPY 的信息,请参阅 postgres手册。

在 pgAdmin (或者通过脚本或其他数据库连接传递的 sql 字符串)中,您只需使用不带“\”前缀的 COPY 。

所以输入类似: COPY tablename....

您需要确保您具有运行该命令的相关权限,因此在这种情况下您需要能够登录数据库并对“tablename”具有写入权限。Postgres 还需要能够访问该文件,因此路径 /home/uploads/ 应该可以在数据库服务器上访问,并且 postgres 用户应该能够读取该文件 - 检查文件和目录的权限。