2016-01-25 5 views
0

Я пытаюсь скопировать содержимое из csv-файла в существующую, но пустую таблицу в PostgreSQL. Это, как далеко я пришел:Копирование содержимого из таблицы csv в PostgreSQL

COPY countries FROM 'C:\Program Files\PostgreSQL\9.5\data\countries-20140629.csv' 
DELIMITERS ',' CSV HEADER 

Проблема, что я испытываю, что CSV-файл containts три столбца (код, english_name и French_name), в то время как мой стол только сохраняется из двух столбцов (код, english_name). Добавление третьего столбца к моей таблице не является вариантом.

Есть ли способ сообщить PostgreSQL только импортировать первые два столбца csv-файла?

+0

Короткий ответ: нет. Возможные обходные пути: 1) отредактируйте файл csv, удалив вторую запятую и все, что происходит после нее. 2) импортировать в таблицу temp с правильным количеством столбцов и игнорировать третий столбец. – joop

ответ

0

Насколько я могу судить, нет возможности сообщить postgres, чтобы импортировать только подмножество столбцов. Вы можете импортировать файл csv во временную таблицу, а затем перенести данные из временной таблицы в конечную таблицу.

+1

Это * есть * возможно, см. Ответ motho –

+0

Это решило проблему для меня, спасибо большое! – MCR

2

Самый простой способ - изменить CSV и удалить последний столбец.

Вы можете попробовать его, как документация говорит:

В вашем случае это будет примерно так:

COPY countries (code, english_name) FROM 'C:\Program Files\PostgreSQL\9.5\data\countries-20140629.csv' DELIMITERS ',' CSV HEADER 

Посмотрите в документации для получения дополнительной помощи: PostgreSQL.org

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