语法错误在或附近"("COPY FROM WITH(FORMAT csv,DELIMITER E'\ t',QUOTE'*',HEADER false,ENCODING'UTF8')

Bad*_*4si 6 postgresql

我正在从txt文件导入数据这是表

CREATE TABLE test.geonames_load(geonameid INTEGER PRIMARY KEY,
  name VARCHAR(200),
  asciiname VARCHAR(200),
  alternatenames VARCHAR,
  latitude FLOAT8,
  longitude FLOAT8,
  feature_class char(1),
  feature_code VARCHAR(10),
  country_code VARCHAR(2), 
  cc2 VARCHAR(60),
  admin1 VARCHAR(20),
  admin2 VARCHAR(80),
  admin3 VARCHAR(20),
  admin4 VARCHAR(20),
  population INTEGER,
  elevation INTEGER,
  dem INTEGER,
  timezone VARCHAR(40),
  modification VARCHAR(18)
);
Run Code Online (Sandbox Code Playgroud)

我尝试从txt文件复制后

COPY test.geonames_load FROM 'C:Program Files/PostgreSQL/8.4/data/US/US.txt' WITH (
  FORMAT csv,
  DELIMITER E'\t',
  QUOTE '*',
  HEADER false,
  ENCODING 'UTF8'
);
Run Code Online (Sandbox Code Playgroud)

但它显示了一个错误

ERROR: syntax error at or near "("
LINE 1: ... FROM 'C:Program Files/PostgreSQL/8.4/data/US/US.txt' WITH (
                                                                      ^
********** Error **********

ERROR: syntax error at or near "("
SQL State: 42601
Character: 83

Dan*_*ité 3

与 8.4 相比,9.0 版本的语法COPY发生了很大变化

假设您使用的是版本 8.4,基于此.../PostgreSQL/8.4/...路径,适用的语法记录在此处:

http://www.postgresql.org/docs/8.4/static/sql-copy.html

WITH并且9.0中出现的关键字后面不允许有任何括号, ENCODING9.1中出现的选项也不允许

看起来您需要将该语句调整为您的 PostgreSQL 的确切版本。