Heim > Datenbank > MySQL-Tutorial > Wie geht SQL Server mit doppelten Schlüsseln um, wie bei MySQL beim ON DUPLICATE KEY UPDATE?

Wie geht SQL Server mit doppelten Schlüsseln um, wie bei MySQL beim ON DUPLICATE KEY UPDATE?

Patricia Arquette
Freigeben: 2024-12-08 09:56:11
Original
380 Leute haben es durchsucht

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

Bietet SQL Server ein Äquivalent zu MySQLs ON DUPLICATE KEY UPDATE?

In MySQL ermöglicht ON DUPLICATE KEY UPDATE die nahtlose Handhabung von Duplizieren Sie Schlüsselwerte, indem Sie vorhandene Zeilen aktualisieren, anstatt neue einzufügen. Diese Funktion ist besonders nützlich bei der Verwaltung von Eindeutigkeits- oder Primärschlüsseleinschränkungen.

SQL Server bietet eine vergleichbare Funktionalität durch seine MERGE-Anweisung. Die MERGE-Anweisung kombiniert die INSERT- und UPDATE-Vorgänge in einem einzigen Befehl und ermöglicht es Entwicklern, neue Zeilen einzufügen oder vorhandene Zeilen basierend auf angegebenen Kriterien zu aktualisieren.

Die folgende MERGE-Anweisung zeigt beispielsweise, wie eine neue Zeile eingefügt wird Die METER_DATA-Tabelle nur, wenn die Kombination aus rtu_id und time_local noch nicht vorhanden ist. Wenn ein Duplikat vorhanden ist, wird die Zeile aktualisiert:

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');
Nach dem Login kopieren

Die WHEN MATCHED-Klausel führt den Aktualisierungsvorgang für die vorhandene Zeile aus, die die angegebene Bedingung erfüllt. Die WHEN NOT MATCHED-Klausel führt den Einfügevorgang für eine neue Zeile aus, die die Bedingung nicht erfüllt.

Durch die Verwendung der MERGE-Anweisung stellt SQL Server eine umfassende Funktion ähnlich der ON DUPLICATE KEY UPDATE von MySQL bereit und ermöglicht eine effiziente Handhabung von doppelte Schlüsselwerte.

Das obige ist der detaillierte Inhalt vonWie geht SQL Server mit doppelten Schlüsseln um, wie bei MySQL beim ON DUPLICATE KEY UPDATE?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage