Я использую COPY table_name FROM STDIN для импорта данных. Это очень эффективно, но при нарушении дубликатов ключей вся процедура будет остановлена. Есть ли способ обойти это?
почему postgresql просто не выдает предупреждение и не копирует остальные данные?
Вот пример:
select * from "Demo1";
Id | Name | Age
---+-------+-----
1 | abc | 20
2 | def | 22
COPY "Demo1" from STDIN;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 3 pqr 25
>> 4 xyz 26
>> 5 abc 21
>> \.
ERROR: duplicate key value violates unique constraint "Demo1_Name_key"
DETAIL: Key ("Name")=(abc) already exists.
CONTEXT: COPY Demo1, line 3
Здесь поле «Имя» имеет уникальное ограничение. Поскольку строка «abc» уже присутствует в таблице. Игнорирование всего процесса.