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!