Le message d'erreur inclura le nom de la contrainte qui a été violée (il peut y avoir plus d'une contrainte unique sur une table). Vous pouvez utiliser ce nom de contrainte pour identifier la ou les colonnes sur lesquelles la contrainte unique est déclarée
SELECT column_name, position
FROM all_cons_columns
WHERE constraint_name = <<name of constraint from the error message>>
AND owner = <<owner of the table>>
AND table_name = <<name of the table>>
Une fois que vous savez quelles colonnes sont affectées, vous pouvez comparer les données que vous essayez de INSERT
ou UPDATE
par rapport aux données déjà présentes dans le tableau pour déterminer pourquoi la contrainte est violée.