首页 > 解决方案 > postgres 抛出的 COPY FROM 中的语法错误

问题描述

我正在尝试将数据从管道分隔的文本文件导入到我的 Postgresdata_master表中。我的命令如下所示:

COPY data_master FROM '/Users/me/Documents/DATA/39079.txt' 
    WITH FORMAT csv, 
    DELIMITER '|', 
    HEADER TRUE;

这是错误:

temp=# COPY data_master FROM '/Users/me/Documents/DATA/39079.txt' WITH FORMAT csv, DELIMITER '|', HEADER TRUE;
ERROR:  syntax error at or near "FORMAT"
LINE 1: .../me/Documents/DATA/39079.txt' WITH FORMAT csv...
                                              ^
temp=# show server_version;
-[ RECORD 1 ]--+-----
server_version | 10.1

从文档来看,这似乎是该命令的有效语法。我做错了什么?

编辑:我在删除逗号后也尝试了这个,结果相同:

temp=# COPY data_master FROM '/Users/me/Documents/DATA/39079.txt' WITH FORMAT CSV DELIMITER '|' HEADER TRUE;
ERROR:  syntax error at or near "FORMAT"
LINE 1: .../me/Documents/DATA/39079.txt' WITH FORMAT CSV...
                                              ^

标签: sqlpostgresqlimport

解决方案


以下语法WITH应在括号中。

COPY data_master FROM '/Users/me/Documents/DATA/39079.txt' 
  WITH (
    FORMAT csv, 
    DELIMITER '|', 
    HEADER TRUE
  );

推荐阅读