Maison > base de données > tutoriel mysql > Comment mettre à jour ou insérer efficacement des enregistrements dans MySQL en fonction de leur existence ?

Comment mettre à jour ou insérer efficacement des enregistrements dans MySQL en fonction de leur existence ?

Linda Hamilton
Libérer: 2024-11-15 13:12:02
original
219 Les gens l'ont consulté

How to Efficiently Update or Insert Records in MySQL Based on Their Existence?

MySQL : mise à jour ou insertion d'enregistrements basés sur l'existence

Lorsque vous utilisez une base de données, il est courant de rencontrer des scénarios dans lesquels vous devez soit mettre à jour ou insérer des enregistrements en fonction de leur existence. Si vous travaillez avec PHP et MySQL, cette question se pose souvent.

Dans ce contexte, la requête d'origine tente de fusionner les instructions update et insert en utilisant la syntaxe IF EXISTS. Cependant, ce n'est pas l'approche la plus efficace.

Pour obtenir la fonctionnalité souhaitée, vous devez envisager d'utiliser la syntaxe INSERT ... ON DUPLICATE KEY UPDATE. Voici la syntaxe correcte :

INSERT INTO <table> (field1, field2, field3, ...) 
VALUES ('value1', 'value2','value3', ...)
ON DUPLICATE KEY UPDATE
field1='value1', field2='value2', field3='value3', ...
Copier après la connexion

Avec cette syntaxe, vous pouvez effectuer à la fois les opérations INSERT et UPDATE dans une seule requête. Si l'enregistrement n'existe pas (en fonction de la clé primaire ou de l'index unique), il sera inséré. Si l'enregistrement existe déjà, il sera mis à jour avec les valeurs fournies.

Il est important de noter que la valeur des lignes concernées pour chaque ligne sera :

  • 1 si la ligne est inséré en tant que nouvelle ligne.
  • 2 si une ligne existante est mise à jour.
  • 0 si une ligne existante est définie sur sa valeur actuelle valeurs.

Cette approche est plus efficace et plus facile à maintenir que de gérer les opérations de mise à jour et d'insertion séparément.

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