#postgresql #csv #psql
#postgresql #csv #psql
Вопрос:
Я пытаюсь импортировать из CSV в Postgres и сгенерировать uuid, uuid_generate_v4(), во время импорта для заполнения таблицы.
Версия Postgres: 14
Таблица Postgres
- Страна
- идентификатор (первичный ключ)
- название страны
- Код страны_из_кода
Импорт Psql
copy "Country" (select uuid_generate_v4() as "id", "country_name", "country_ISO_code") FROM 'C:Users.......data.csv' (format csv, header, delimiter ',')
Однако это приводит к ошибке copy: parse error at "as"
Как правильно указать psql для использования uuid_generate_v4()
в качестве столбца идентификатора?
Заранее спасибо
Ответ №1:
Вы не можете скопировать «из» оператора select. Вам необходимо определить значение по умолчанию для вашего первичного ключа:
create table country ( id uuid primary key default gen_random_uuid(), country_name text not null, country_iso_code text not null );
Затем сообщите copy
команде, что ваш входной файл содержит только два столбца:
copy country (country_name, country_iso_code) from 'data.csv' (format csv, header, delimiter ',')