Команда копирования PostgreSQL генерирует идентификатор первичного ключа - PullRequest
41 голосов
/ 27 октября 2011

У меня есть CSV-файл с двумя столбцами: город и почтовый индекс.Я хочу иметь возможность скопировать этот файл в таблицу PostgreSQL с помощью команды copy и в то же время автоматически сгенерировать значение id.

В таблице есть следующие столбцы: id, city и zipcode.

Мой CSV-файл содержит только: city и zipcode.

1 Ответ

58 голосов
/ 27 октября 2011

Команда COPY должна сделать это сама, если ваша таблица использует столбец serial для id:

Если в таблице есть какие-либо столбцыкоторые отсутствуют в списке столбцов, COPY FROM вставит значения по умолчанию для этих столбцов.

Таким образом, вы можете сказать:

copy table_name(city, zipcode) from ...

и idбудет генерироваться как обычно.Если у вас нет столбца serial для id (или последовательности, прикрепленной вручную), вы можете вручную подключить последовательность, выполнить КОПИРОВАТЬ, а затем отсоединить последовательность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...