Upsert avec des tables complexes : mise à jour de plusieurs colonnes
Lors de l'exécution d'opérations d'upsert avec plusieurs colonnes, la question se pose de savoir s'il est efficace d'utiliser plusieurs sélectionnez les instructions dans la partie mise à jour. Bien que cela soit techniquement réalisable, une meilleure approche est disponible.
Considérez l'exemple fourni :
INSERT INTO `item` (`item_name`, items_in_stock) VALUES('A', 27) ON DUPLICATE KEY UPDATE `new_items_count` = 27 + (SELECT items_in_stock where item_name = 'A')
Cette requête ajoute effectivement la quantité entrante à la valeur existante pour l'article spécifié. Cependant, la sous-sélection n'est pas nécessaire.
La version corrigée de la requête est la suivante :
INSERT INTO `item` (`item_name`, items_in_stock) VALUES( 'A', 27) ON DUPLICATE KEY UPDATE `new_items_count` = `new_items_count` + 27
En omettant la sous-sélection, la requête utilise la capacité de MySQL à référencer la ligne qui a déclenché l'activation. Action CLÉ EN DUPLICATION. Cela élimine le besoin d'instructions de sélection supplémentaires et rationalise le processus de mise à jour.
N'oubliez pas que la simplicité est souvent la clé d'opérations efficaces. En examinant attentivement les options disponibles et en évitant toute complexité inutile, vous pouvez optimiser vos requêtes d'insertion en termes de performances et de lisibilité du code.
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!