Maison > base de données > tutoriel mysql > le corps du texte

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

Barbara Streisand
Libérer: 2024-11-26 22:45:11
original
218 Les gens l'ont consulté

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal