Не можете да пропуснете грешките, без да пропуснете цялата команда до и включително Postgres 14. Понастоящем няма по-сложна обработка на грешки.
\copy е просто обвивка около SQL COPY който канализира резултатите чрез psql. Ръководството за COPY :
COPYспира работата при първа грешка. Това не трябва да води до проблеми в случай наCOPY TO, но целевата таблица вече ще е получила по-ранни редове вCOPY FROM. Тези редове няма да бъдат видими или достъпни, но все пак заемат дисково пространство. Това може да доведе до значително количество загубено дисково пространство, ако неуспехът се е случил при голяма операция за копиране. Може да искате да извикатеVACUUMза да възстановите пропиляното пространство.
Удебелен акцент мой. И:
COPY FROMще изведе грешка, ако някой ред от входния файл съдържа повече или по-малко колони от очакваното.
COPY е изключително бърз начин за импортиране/експортиране на данни. Сложните проверки и обработката на грешки биха го забавили.
Имаше опит за добавяне на регистриране на грешки към COPY в Postgres 9.0, но никога не е бил ангажиран.
Решение
Вместо това поправете своя входен файл.
Ако имате една или повече допълнителни колони във вашия входен файл и файлът е по друг начин последователен , можете да добавите фиктивни колони към вашата таблица isa и ги пуснете след това. Или (инструмент за почистване с производствени таблици) импортирайте във временна стадия и INSERT избрани колони (или изрази) към вашата целева таблица isa от там.
Свързани отговори с подробни инструкции:
- Как да актуализирам избрани редове със стойности от CSV файл в Postgres?
- Команда COPY:копирайте само определени колони от csv