DBAtlas · Атлас эксплуатации баз данных

ORA-00001: Нарушено ограничение уникальности

Oracle

Что это значит?

Вставляемая или обновляемая строка нарушает ограничение UNIQUE или PRIMARY KEY. Иными словами, такое значение уже существует.

Почему возникает?

Повторная вставка строки с тем же значением ключа, ввод дублирующихся данных в столбец, который должен быть уникальным, или повторная обработка той же записи при репликации/перезапусках.

Как исправить

Определите нарушенный столбец по имени ограничения из сообщения об ошибке: SELECT column_name FROM all_cons_columns WHERE constraint_name = 'CONSTRAINT_NAME'. Для поиска дубликатов используйте GROUP BY ... HAVING COUNT(*) > 1. В приложении для существующих записей используйте UPDATE или MERGE вместо INSERT. Если значение последовательности отстало, продвиньте его с помощью ALTER SEQUENCE.

Открыть в DBAtlas →

Ещё по этой СУБД