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

标签 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)
);

在我尝试从 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/

相关文章:

mysql - 从一张表中选择全部,但与多个表进行比较

ruby-on-rails - 在 Rails 3 中,跟踪给定 RESTful 资源的访问次数的最有效方法是什么?

postgresql - 如何根据 PostgreSQL 中的两个值选择特定行

postgresql - 在 OpenShift v3 上将 Postgresql 配置为服务

sql - 使用 CAST 和 SUBSTRING 时如何在 postgresql 中过滤查询结果 (pgAdmin 4)

java - 可以使用 Postgres 序列和 Hibernate 映射制作可查询的计数器吗?

SQL 基本类型 : integer vs int?

java - 超快文件存储引擎

java - 为列中的每个不同值获取 2 行

json - PostgreSQL:根据嵌套在对象数组中的另一个对象内的对象中是否存在动态字段来查询表