我需要将一个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数据库。谢谢!
答案 0 :(得分:4)
您的表格创建错误。例如,此列声明:
country_code character varying(10)[] NOT NULL,
正在创建一个varchar(10)数组。你只想要一个。将[]
放在这些列上。
此外,您发布的示例数据实际上并不以逗号分隔,但我假设实际的数据文件是。