SQL Server offre-t-il un équivalent à ON DUPLICATE KEY UPDATE de MySQL ?
Dans MySQL, ON DUPLICATE KEY UPDATE permet une gestion transparente des dupliquez les valeurs clés en mettant à jour les lignes existantes au lieu d’en insérer de nouvelles. Cette fonctionnalité est particulièrement utile lors de la gestion de contraintes de clé unique ou primaire.
SQL Server fournit une fonctionnalité comparable via son instruction MERGE. L'instruction MERGE combine les opérations INSERT et UPDATE en une seule commande, permettant aux développeurs d'insérer de nouvelles lignes ou de mettre à jour celles existantes en fonction de critères spécifiés.
Par exemple, l'instruction MERGE suivante montre comment insérer une nouvelle ligne dans la table METER_DATA uniquement si la combinaison de rtu_id et time_local n'existe pas déjà. Si un doublon existe, il met à jour la ligne :
MERGE INTO MyBigDB.dbo.METER_DATA WITH (HOLDLOCK) AS target USING (SELECT 77748 AS rtu_id ,'12B096876' AS meter_id ,56112 AS meter_reading ,'20150602 00:20:11' AS time_local) AS source (rtu_id, meter_id, meter_reading, time_local) ON (target.rtu_id = source.rtu_id AND target.time_local = source.time_local) WHEN MATCHED THEN UPDATE SET meter_id = '12B096876' ,meter_reading = 56112 WHEN NOT MATCHED THEN INSERT (rtu_id, meter_id, meter_reading, time_local) VALUES (77748, '12B096876', 56112, '20150602 00:20:11');
La clause WHEN MATCHED effectue l'opération de mise à jour sur la ligne existante qui satisfait à la condition spécifiée. La clause WHEN NOT MATCHED effectue l'opération d'insertion pour une nouvelle ligne qui ne satisfait pas à la condition.
En utilisant l'instruction MERGE, SQL Server fournit une fonctionnalité complète similaire à ON DUPLICATE KEY UPDATE de MySQL, permettant une gestion efficace des dupliquer les valeurs clés.
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!