2013-08-26 5 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»

Копии местоположений (имя, адрес, город, провинция, почтовый код, страна, телефон, внешний, phone_alt, ext_alt, url) FROM '/Volumes/Data/Users/me/Dealers.csv' WITH (FORMAT csv);

+0

Я пробовал это и получил другую ошибку: «ОШИБКА: значение null в столбце« created_at »нарушает не-нулевое ограничение ДЕТАЛИ: Неудачная строка содержит (4, 1 СТОП ЭЛЕКТРОНИК-ЦЕНТР ...». Я предположил, что, поскольку Я перечислил столбцы, данные из CSV будут только сопоставлены с указанными и в этом порядке. Есть ли способ их опустить? –

+0

На самом деле, я думаю, потому что они «не являются нулями», там автоматически создается 'created_at 'и' updated_at'? –

+0

Я только что добавил временную метку в CSV. Таким образом, окончательный рабочий результат: «КОПИРЫ (название, адрес, город, провинция, почтовый код, страна, телефон, внешний, phone_alt, ext_alt, created_at , updated_at, url) FROM '/Volumes/Data/Users/me/Dealers.csv' WITH (FORMAT csv); ' –

Смежные вопросы