Maison >base de données >tutoriel mysql >Comment puis-je insérer ou mettre à jour efficacement des données dans MySQL ?

Comment puis-je insérer ou mettre à jour efficacement des données dans MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-20 15:14:21847parcourir

How Can I Efficiently Insert or Update Data in MySQL?

Insérer ou mettre à jour efficacement des données dans une table MySQL

Considérez un scénario dans lequel vous souhaitez insérer une nouvelle ligne de données si elle n'existe pas , ou mettez à jour une ligne existante si c'est le cas. Dans ce cas, vous pourriez être tenté d'utiliser une instruction UPDATE comme celle fournie dans la question. Cependant, cette approche a ses limites.

L'utilisation de INSERT ... ON DUPLICATE KEY UPDATE fournit une solution plus efficace. Voici comment cela fonctionne :

La clause INSERT tente d'insérer une nouvelle ligne dans la table AggregatedData avec les valeurs spécifiées. Si une ligne avec le même datenum existe déjà, la clause ON DUPLICATE KEY UPDATE entre en jeu.

La clause UPDATE précise quelles colonnes mettre à jour dans la ligne existante. Dans ce cas, nous souhaitons mettre à jour la colonne Timestamp avec la valeur fournie ("2010-01-14 23:30:00.000").

Contrairement à l'instruction UPDATE, nous n'avons pas besoin d'inclure datenum dans la clause UPDATE puisqu'il s'agit de la clé unique et doit rester inchangée.

L'utilisation de la fonction VALUES() garantit que les valeurs correctes sont utilisées lorsque mettant à jour les autres colonnes.

Voici l'instruction révisée à l'aide de INSERT ... ON DUPLICATE KEY UPDATE :

INSERT INTO AggregatedData (datenum,Timestamp)
VALUES ("734152.979166667","2010-01-14 23:30:00.000")
ON DUPLICATE KEY UPDATE
  Timestamp=VALUES(Timestamp)

Cette approche gère efficacement à la fois l'insertion et la mise à jour dans une seule instruction, rendant ainsi la gestion des données dans votre table MySQL plus rationalisée.

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