首页 > 解决方案 > 将 CSV 文件导入临时表时,PostgreSQL 中 COPY 语句中列名附近的语法错误

问题描述

我尝试运行以下 COPY 语句:

\COPY tmp_table(名字、姓氏、电子邮件) FROM '/Desktop/persons.csv' WITH DELIMITER ';' CSV 标题;

但我得到下表:错误:“名称”处或附近的语法错误第 1 行:COPY tmp_table (first name, last name, e-mail) FROM STDIN...

有什么建议可以解决这个错误吗?

标签: csvsyntaxcopy

解决方案


您列出了三个列名称:last namefirst namee-mail

这些不是有效的 PostgreSQL 标识符。前两个包含空格字符,最后一个包含连字符。

您可以在名称中使用这些“特殊”字符,但必须用双引号括起这些名称。例如:

\COPY tmp_table ("first name", "last name", "e-mail") ...

有关详细信息,请参阅标识符和关键字


推荐阅读