PostgreSQL COPY FROM 问题

PostgreSQL COPY FROM issue

DROP table if exists legislators;

CREATE table legislators
(
...
)
;

COPY legislators 
FROM 'C:\data\legislators.csv'
DELIMITER ',' -- It is written in different line from `FROM` clause but it raises ERROR.
CSV HEADER;

我正在尝试将 CSV 文件导入 HeidiSQL v11 上的 PostgreSQL。当我执行上面用多行编写的查询时,它会引发错误:

ERROR: syntax error at or near "CSV" LINE 1: CSV HEADER;

但是,我发现如果我将 FROM 子句和 DELIMITER ',' 写在一行中,如下所示,效果很好。

COPY legislators 
FROM 'C:\data\legislators.csv' DELIMITER ',' -- These FROM and DELIMITER should be the same line to work 
CSV HEADER;

我知道 SQL 基本上会忽略空格,但我很困惑为什么会这样。

非常感谢有人帮助我。谢谢。

那是因为 HeidiSQL 对 PostgreSQL 行的解析不是很聪明,因此感到困惑。它将语句作为两个语句执行,这导致了错误。

使用不同的 PostgreSQL 客户端。