Maison > base de données > tutoriel mysql > Comment SQL Server gère-t-il les clés en double comme la mise à jour de la clé en double de MySQL ?

Comment SQL Server gère-t-il les clés en double comme la mise à jour de la clé en double de MySQL ?

Patricia Arquette
Libérer: 2024-12-08 09:56:11
original
385 Les gens l'ont consulté

How Does SQL Server Handle Duplicate Keys Like MySQL's ON DUPLICATE KEY UPDATE?

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');
Copier après la connexion

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!

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