ORA-00001: Unique constraint violated (contrainte unique violée)
OracleQue 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.
Autres entrées pour ce moteur
- ORA-00054Resource busy and acquire with NOWAIT specified or timeout expired (ressource occupée ; NOWAIT spécifié ou délai expiré)
- ORA-00060Deadlock detected while waiting for resource (interblocage détecté en attente de ressource)
- ORA-01017Invalid username/password; logon denied (nom d'utilisateur/mot de passe invalide ; connexion refusée)
- ORA-01555Snapshot too old: rollback segment number too small (instantané trop ancien)