我正在从 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)
);
在我尝试从 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'
);
但是它显示了一个错误
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
最佳答案
与 8.4 相比,COPY
的语法在 9.0 中发生了很大变化
假设您使用的是 8.4 版本,基于此 .../PostgreSQL/8.4/...
路径,
适用的语法记录在此处:
http://www.postgresql.org/docs/8.4/static/sql-copy.html
并且不允许在9.0出现的WITH
关键字后有任何括号,也不允许在9.1出现的ENCODING
选项后面有括号
看起来您需要根据您的 PostgreSQL 版本调整语句。
关于postgresql - "("或附近的语法错误 COPY FROM WITH (FORMAT csv, DELIMITER E'\t', QUOTE '*', HEADER false, ENCODING 'UTF8'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20545296/