我正在从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'
);
但它显示了一个错误
错误:"("处或附近有语法错误第1行:。。。FROM'C:程序文件/PostgreSQL/8.4/data/US/US.txt'WITH(^**********错误**********错误:"("处或附近有语法错误SQL状态:42601字符:83
COPY
的语法在9.0版本中与8.4 相比发生了很大变化
假设您使用的是8.4版本,基于此.../PostgreSQL/8.4/...
路径,这里记录了适用的语法:
http://www.postgresql.org/docs/8.4/static/sql-copy.html
并且它不允许在9.0中出现的WITH
关键字后面有任何括号,也不允许在9.1 中出现ENCODING
选项
看起来您需要根据PostgreSQL的确切版本调整该语句。
SQL错误[42601]:错误:"处或附近的语法错误;("位置:51
对我来说,原因是缺少列标题,例如没有中间名标题:
ID,FirstName,,Surname
更正带有标题的CSV文件并从列标题中删除保留字符将其修复。