Maison  >  Article  >  base de données  >  Entrée en double pour la clé 'unique_key_constraint' - Comment résoudre l'erreur MySQL : enregistrements en double de contrainte de clé unique

Entrée en double pour la clé 'unique_key_constraint' - Comment résoudre l'erreur MySQL : enregistrements en double de contrainte de clé unique

WBOY
WBOYoriginal
2023-10-05 10:00:501122parcourir

Duplicate entry for key 'unique_key_constraint' - 如何解决MySQL报错:唯一键约束重复记录

Comment résoudre l'erreur MySQL : les enregistrements en double sont limités par des clés uniques, des exemples de code spécifiques sont nécessaires

Lors de l'utilisation de la base de données MySQL, nous rencontrons souvent le problème des enregistrements en double contraints par des clés uniques. Lorsque vous essayez d'insérer une donnée dans la table, s'il existe un enregistrement avec la même contrainte de clé unique, le message d'erreur "Entrée en double pour la clé 'unique_key_constraint'" apparaîtra. Cette erreur indique que l'enregistrement que nous essayons d'insérer est en conflit avec un enregistrement existant et viole la contrainte de clé unique.

Alors, lorsque nous rencontrons cette erreur, comment la résoudre ? Certaines solutions courantes seront présentées ci-dessous, accompagnées d'exemples de code spécifiques.

Solution 1 : Supprimer les enregistrements en double

Le moyen le plus simple et le plus direct consiste à supprimer les enregistrements en double. Nous pouvons utiliser l'instruction DELETE pour supprimer les enregistrements en double avec des enregistrements en conflit. Voici un exemple de code :

DELETE FROM 表名 WHERE 唯一键列名 = '冲突值';

Par exemple, nous avons une table nommée "students", qui a une colonne de contrainte de clé unique "student_id", et maintenant nous voulons insérer un enregistrement avec student_id 1001, mais l'enregistrement existe déjà . Nous pouvons utiliser le code suivant pour supprimer cet enregistrement en conflit :

DELETE FROM students WHERE student_id = 1001;

Solution 2 : Mettre à jour les enregistrements en double

En plus de supprimer les enregistrements en double, nous pouvons également envisager de mettre à jour les enregistrements en double. Nous pouvons utiliser l'instruction UPDATE pour mettre à jour les enregistrements qui sont des doublons d'enregistrements en conflit. Voici un exemple de code :

UPDATE 表名 SET 列名1 = '新值1', 列名2 = '新值2', ... WHERE 唯一键列名 = '冲突值';

Par exemple, nous avons une table nommée "users", qui a une colonne de contrainte de clé unique "username". Nous voulons maintenant insérer un enregistrement avec le nom d'utilisateur "admin", mais l'enregistrement est existent déjà. Nous pouvons utiliser le code suivant pour mettre à jour d'autres valeurs de champ de cet enregistrement en conflit :

UPDATE users SET password = 'newPassword' WHERE username = 'admin';

Solution trois : ignorer les enregistrements en double

Si nous ne voulons pas supprimer ou mettre à jour les enregistrements en double, mais que nous souhaitons que les enregistrements insérés soient ignorés , nous pouvons utiliser l'instruction INSERT IGNORE. L'instruction INSERT IGNORE ignore les enregistrements en conflit avec des contraintes de clé unique lors de l'insertion d'enregistrements. Voici un exemple de code :

INSERT IGNORE INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);

Par exemple, nous souhaitons insérer un enregistrement dans une table nommée "orders" dont la colonne de contrainte de clé unique est "order_number". Nous pouvons utiliser le code suivant pour ignorer l'opération d'insertion d'enregistrements en conflit :

INSERT IGNORE INTO orders (order_number, customer_id, total_amount) VALUES ('1001', '12345', '100.00');

En résumé, lorsque nous rencontrons l'erreur MySQL "Entrée en double pour la clé 'unique_key_constraint'", nous pouvons supprimer les enregistrements en double, mettre à jour les enregistrements en double ou ignorer la duplication de l'enregistrement. pour résoudre ce problème. Choisissez la solution appropriée en fonction de votre situation et utilisez les exemples de code ci-dessus. J'espère que le contenu ci-dessus vous sera utile !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn