postgresql导入csv文件

时间:2012-12-07 03:57:43

标签: database postgresql

我需要将一个csv文件上传到postgresql数据库表。 像

这样的csv文件
A           B               C       D               E       F

16777216    16777471        AU      AUSTRALIA       OC      OCEANIA
16777472    16778239        CN      CHINA           AS      ASIA
16778240    16779263        AU      AUSTRALIA       OC      OCEANIA
16779264    16781311        CN      CHINA           AS      ASIA

,表格是

CREATE TABLE ipligence
(
  ip_from numeric(11,0) NOT NULL DEFAULT 0,
  ip_to numeric(11,0) NOT NULL DEFAULT 0,
  country_code character varying(10)[] NOT NULL,
  country_name character varying(225)[] NOT NULL,
  continent_code character varying(10)[] NOT NULL,
  continent_name character varying(255)[] NOT NULL,
  CONSTRAINT ipligence_pkey PRIMARY KEY (ip_to )
 )
WITH (
  OIDS=FALSE
 );
ALTER TABLE ipligence

我在pgsql中使用copy命令,

copy ipligence 
from '/home/pgsql/ipligence-lite.csv' 
delimiter as ',' 
csv quote as '"';

但它显示

  ERROR:  array value must start with "{" or dimension information
  CONTEXT:  COPY ipligence, line 1, column country_code: "AU"

如何成功将csv文件输入postgresql数据库。谢谢!

1 个答案:

答案 0 :(得分:4)

您的表格创建错误。例如,此列声明:

country_code character varying(10)[] NOT NULL,

正在创建一个varchar(10)数组。你只想要一个。将[]放在这些列上。

此外,您发布的示例数据实际上并不以逗号分隔,但我假设实际的数据文件是。