нарушение уникального ограничения приводит к сбою всего импорта pq.CopyIn postgresql - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь использовать pq.CopyIn для массового импорта, как описано здесь:

https://godoc.org/github.com/lib/pq

Импорт намного быстрее, чем другие методы, которые я пробовал, но яобнаружение, что уникальное нарушение ограничения только в одной записи приведет к сбою всего импорта.

Есть ли способ изменить это поведение?Есть ли какой-нибудь простой способ узнать, какая запись вызвала проблему?Есть ли лучший вариант pq.CopyIn для быстрого импорта?

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

1 Ответ

0 голосов
/ 07 июня 2018

Сообщение об ошибке должно дать вам подсказку, в чем проблема.

Поскольку оператор COPY (как и все операторы SQL) выполняется в своей собственной транзакции, одна ошибка откатит всю работу.

Если вы хотите жить с более медленной обработкой, вы можете прибегнуть к INSERT ... ON CONFLICT DO NOTHING.

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