Maison >base de données >tutoriel mysql >Comment ignorer les insertions de clés en double dans SQL sans erreurs ?
Comment ignorer les clés en double lors de l'insertion ?
Vous essayez d'insérer des données dans une table où le champ de balise a une contrainte UNIQUE . Pour ignorer les balises en double, vous recherchez une solution qui ignore ces insertions en double.
Solution :
Au lieu d'utiliser INSERT IGNORE, qui supprime toutes les erreurs, pensez à utiliser l'option suivant approche :
INSERT INTO table_tags (tag) VALUES ('tag_a'),('tab_b'),('tag_c') ON DUPLICATE KEY UPDATE tag=tag;
Explication :
En utilisant ON DUPLICATE KEY UPDATE, si une balise existe déjà dans la base de données, sa valeur ne sera pas mise à jour. Cela signifie que les insertions en double seront ignorées sans provoquer d'erreur. Le code que vous avez fourni avec le "*" ne fonctionnera pas car il ne précise pas quelle balise doit être ignorée.
Exemple :
Lorsque vous exécutez la requête ci-dessus, vous remarquerez que le message suivant s'affiche :
Query OK, 0 rows affected (0.07 sec)
Cela indique que les données ont été insérées avec succès, les balises en double étant ignorées.
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!