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.