Maison >base de données >tutoriel mysql >INSERT vs UPDATE sur les clés en double : comment gérer les conflits dans MySQL ?

INSERT vs UPDATE sur les clés en double : comment gérer les conflits dans MySQL ?

DDD
DDDoriginal
2024-11-27 03:18:141017parcourir

INSERT vs. UPDATE on Duplicate Keys: How to Handle Conflicts in MySQL?

Sur la gestion des clés en double

Lors de l'insertion de valeurs uniques dans une table de base de données, il est courant de rencontrer le scénario où des enregistrements en double sont détectés. Dans de tels cas, vous disposez d'options pour déterminer comment gérer ces conflits.

INSERT IGNORE vs. INSERT ON DUPLICATE KEY UPDATE

L'instruction INSERT IGNORE ignore simplement toutes les erreurs. et continue d'insérer des lignes. Cependant, cela n'est pas recommandé car cela peut entraîner des conséquences imprévues et une incohérence des données.

Au lieu de cela, une option plus appropriée est INSERT ON DUPLICATE KEY UPDATE, qui vous permet de spécifier une action de mise à jour lorsqu'un conflit survient. Dans votre cas, où la clé unique est le champ de balise, vous pouvez utiliser la syntaxe suivante :

INSERT INTO table_tags (tag) VALUES ('tag_a'),('tab_b'),('tag_c')
ON DUPLICATE KEY UPDATE tag=tag;

Cette instruction tente d'insérer les valeurs spécifiées. Si l'une des balises existe déjà, la clause de mise à jour définira simplement la valeur de la balise sur elle-même, ignorant ainsi la balise en double.

Test de la requête

Exécution de la requête entraînera le résultat suivant :

Query OK, 0 rows affected (0.07 sec)

Cela confirme que les balises en double ont été ignorées et que les lignes restantes ont été correctement inséré.

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