DBAtlas · Atlas d'exploitation des bases de données

ORA-00001: Unique constraint violated (contrainte unique violée)

Oracle

Que signifie cette erreur ?

Une ligne insérée ou mise à jour viole une contrainte UNIQUE ou PRIMARY KEY. Autrement dit, la même valeur existe déjà.

Cause

Réinsertion d'une ligne avec la même valeur de clé, saisie de données en double dans une colonne qui doit être unique, ou traitement du même enregistrement deux fois lors d'une réplication/d'une réexécution.

Comment la corriger

Identifiez la colonne violée à partir du nom de la contrainte dans le message d'erreur : SELECT column_name FROM all_cons_columns WHERE constraint_name = 'CONSTRAINT_NAME'. Utilisez GROUP BY ... HAVING COUNT(*) > 1 pour trouver les doublons. Dans l'application, utilisez UPDATE ou MERGE au lieu d'INSERT pour les enregistrements existants. Si la valeur de la séquence a pris du retard, avancez-la avec ALTER SEQUENCE.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur