Задать вопрос
inheaven
@inheaven

Игнорирование ошибки дублирования при вставки записи в MySQL

Добрый день!

У меня опять встретилась такая проблема. Есть готовое приложение которое через MySQL ODBC вставляет записи в базу. Есть база к которой я имею доступ. В базе мне нужно чтобы записи были уникальны и поэтому создаю уникальный ключ.

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

Причем я не могу в приложении поменять запрос на INSERT IGNORE. У меня только доступ к базе и к ODBC драйверу. Тут надо как-то через настройки базы или триггер.
  • Вопрос задан
  • 3588 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
Значения строки нужны старые или новые?
Если только новые, то из триггера before insert удаляйте дублирующую строку. Костыль, но должен будет работать.
Если старые — можете тут порыться. Или совсем костыль: убрать уникальный индекс и триггером после вставки удалять лишнюю строку.
Ответ написан
@ShouldNotSeeMe
Можно дописать в конец запроса ON DUPLICATE KEY UPDATE myvalue=VALUES(myvalue)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы