2013-08-26 91 views
0

我试图导入CSV并保持运行到错误最近:导入CSV移植到PostgreSQL

ERROR: invalid input syntax for integer: "" 
CONTEXT: COPY locations, line 1, column ext: "" 

我还是新来这个,但我可以告诉它好像它不使用null用于任何空白整数列。任何帮助,将不胜感激。

以下是从CSV几行:

1 STOP ELECTRONICS CENTER,1100 CONEY ISLAND AVENUE,BROOKLYN,NY,11230,USA,7182491201,,,, 
1 STOP FURNITURE WAREHOUSE,9050 KENMAR DR.,SAN DIEGO,CA,92121,USA,8582719400,,,, 
309 OFFICE FURNITURE,1711 BETHLEHEM PARK,HATFIELD,PA,19440,USA,2158223333,,,, 
"A & W OFFICE SUPPLY & DESIGN, INC.",10653 DUTCHTOWN ROAD,KNOXVILLE,TN,37932,USA,8656758532,,,, 

下面是我用COPY命令:

COPY locations(name, address, city, province, postal_code, country, phone, ext, phone_alt, ext_alt, url) FROM '/Volumes/Data/Users/me/Dealers.csv' WITH (FORMAT csv, DELIMITER ',', NULL 'NULL'); 

这里是我的位置表:

         Table "public.locations" 
    Column |   Type    |      Modifiers       
-------------+-----------------------------+-------------------------------------------------------- 
id   | integer      | not null default nextval('locations_id_seq'::regclass) 
name  | character varying(255)  | 
address  | character varying(255)  | 
city  | character varying(255)  | 
province | character varying(255)  | 
postal_code | character varying(255)  | 
country  | character varying(255)  | 
phone  | bigint      | 
ext   | bigint      | 
phone_alt | bigint      | 
ext_alt  | bigint      | 
latitude | double precision   | 
longitude | double precision   | 
created_at | timestamp without time zone | not null 
updated_at | timestamp without time zone | not null 
url   | character varying(255)  | 
Indexes: 
    "locations_pkey" PRIMARY KEY, btree (id) 

回答

0

尝试不用'NULL'

COPY地点(姓名,地址,城市,省,邮政编码,国家,电话,分机,phone_alt,ext_alt,网址)从'/Volumes/Data/Users/me/Dealers.csv'WITH(FORMAT csv);

+0

我试过了,得到了一个不同的错误:'错误:列中的空值'created_at'违反了非空约束 细节:失败的行包含(4,1 STOP ELECTRONICS CENTER ...'。我认为,因为我列出了列,CSV中的数据只会映射到指定的顺序,有没有办法省略这些? –

+0

其实,我猜是因为它们不是空的,是否会自动生成一个'created_at ''和'updated_at'? –

+0

我刚刚在CSV中添加了一个时间戳,所以最终的工作结果是:COPY位置(名称,地址,城市,省,邮政编码,国家,电话,分机,电话号码,ext_alt,created_at ,updated_at,url)FROM'/Volumes/Data/Users/me/Dealers.csv'WITH(FORMAT csv);' –