Maison >base de données >tutoriel mysql >Comment gérer les clés en double dans les instructions MySQL INSERT ?

Comment gérer les clés en double dans les instructions MySQL INSERT ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-26 22:45:11250parcourir

How to Handle Duplicate Keys in MySQL INSERT Statements?

Ignorer ou mettre à jour les clés en double dans MySQL

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!

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