AN INSERTED OR UPDATED VALUE IS INVALID BECAUSE THE INDEX nom-index CONSTRAINS COLUMNS OF THE TABLE SUCH THAT NO TWO ROWS CAN CONTAIN DUPLICATE VALUES IN THOSE COLUMNS. RID OF EXISTING ROW IS X’numéro-rid’
Explication :
La table touchée par une opération INSERT ou UPDATE possède une contrainte d’unicité sur certaines colonnes, gérée par un UNIQUE INDEX de nom ‘nom-index’. Le résultat de la demande se traduirait par des valeurs dupliquées sur la ligne identifiée par ‘numéro-rid’
Si l’objet de la mise à jour est une vue, c’est la table définissant cette vue qui possède la contrainte. La mise à jour peut aussi être induite par une opération DELETE sur une ligne parent liée à une ligne dépendante par une règle de destruction SET NULL.
Action système :
L’ordre INSERT, UPDATE ou DELETE ne peut être exécuté. La table reste inchangée.
Réponse programmeur :
Examiner la définition de l’index ‘nom-index” pour déterminer la contrainte d’unicité imposée.
Pour un ordre UPDATE, vérifier que l’opération est compatible avec la contrainte d’unicité. Le cas échéant, examiner la table pour déterminer la cause du problème.
Pour un ordre INSERT, examiner la table pour déterminer les valeurs qui enfreignent la contrainte d’unicité. Si l’ordre INSERT contient une sous-requête, croiser le résultat de la sous-requête avec le contenu de la table afin de déterminer la cause du problème.
Pour un ordre DELETE, examiner les colonnes clés de la table qui définissent l’index. Ces colonnes contiennent une clé étrangère qui, lors d’un DELETE en cascade avec mise à NULL des valeurs, provoque une duplication de valeurs.