Lorsque vous tentez d'insérer des données dans une table qui applique une contrainte UNIQUE sur un champ spécifique, telle que "tag" dans ce Dans ce cas, la rencontre de valeurs en double peut entraîner des erreurs. Cette question explore comment gérer de telles situations, en mettant particulièrement l'accent sur l'ignorance des doublons.
Le premier exemple fourni montre une tentative d'insertion de plusieurs valeurs dans la table "table_tags", avec l'intention d'ignorer les balises en double. Cependant, l'utilisation de "INSERT INTO ... ON DUPLICATE KEY IGNORE" n'est pas recommandée, car elle risque d'ignorer toutes les erreurs, pas seulement les violations de clé en double.
Au lieu de cela, la solution recommandée consiste à utiliser "INSERT INTO... ON DUPLICATE KEY UPDATE tag=tag;" syntaxe. Cette approche vous permet de spécifier explicitement ce qui doit se passer en cas de violation de clé en double, dans ce cas simplement en mettant à jour l'enregistrement existant avec la même valeur.
L'utilisation de cette syntaxe garantit que les clés en double ne sont pas ignorées, mais au contraire, leurs valeurs existantes sont maintenues. La clé en double est effectivement ignorée, mais la requête ne produit aucune erreur, ce qui entraîne « Requête OK, 0 ligne affectée » comme prévu.
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!