L'erreur MySQL duplicate entry for key ...

Noter ce cours :

Liens sponsorisés :

Cette erreur survient lorsque vous tenter d'entrer des valeurs identiques alors qu'une clé primaire est présente dans la table et empêche ces insertions identiques. Prenons la table suivante :

Structure de la table
Une table MySQL classique contenant une clé primaire

Il y a une clé primaire sur le couple de champs id_source et id_voteur. Cela veut dire qu'il n'y a pas possibilité d'avoir deux fois le même couple (id_source, id_voteur).

Lorsque l'on souhaite ajouter des données dans la table, on peut le faire à l'aide de la requête suivante :

INSERT INTO table (id_source, id_voteur, note) VALUES(1,1,5),(1,1,2)

Cette requête renverra une erreur de duplicate entry car le couple 1,1 tentera d'être inséré deux fois ce que la clé primaire ne permet pas.

Quelques solutions existent pour résoudre ce problème. Elles vont du contrôle de ce que vous ajoutez à la modification de la structure de la table.

Contrôler les valeurs insérées

En général, le problème se situe plutôt ici. Votre application doit faire attention à ce qu'elle insère en base de données. Si vous tentez d'insérer deux fois la même valeur (sensée être unique), c'est qu'il y a un souci dans votre code.

Identifiez le problème et réglez-le.

Modifier la structure de la table

Il peut arriver que vous souhaitiez quand même stocker les données ayant la même clé unique. Dans ce cas, vous n'aurez pas 36 solutions : il vous faudra modifier la structure de la table pour enlever la clé unique qui pose problème.

Vous avez aimé cet article intitulé L'erreur MySQL duplicate entry for key ... ? Partagez-le !
Vulgarisation-informatique.com
Cours en informatique & tutoriels