2013-08-26 92 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);' –