Heim > Datenbank > MySQL-Tutorial > Wie kann ich die Funktionalität der MERGE-Anweisung von SQL in MySQL erreichen?

Wie kann ich die Funktionalität der MERGE-Anweisung von SQL in MySQL erreichen?

Mary-Kate Olsen
Freigeben: 2024-12-29 21:01:11
Original
302 Leute haben es durchsucht

How Can I Achieve the Functionality of SQL's MERGE Statement in MySQL?

MySQLs Alternative zur MERGE-Anweisung

SQL enthält eine Merge-Anweisung, die es Benutzern ermöglicht, INSERT- und UPDATE-Vorgänge in einer einzigen Abfrage zu kombinieren. MySQL unterstützt diese Anweisung jedoch nicht.

Erzielung des Merge-Effekts in MySQL

Obwohl es keine dedizierte MERGE-Anweisung gibt, bietet MySQL eine alternative Lösung:

INSERT...ON DUPLICATE KEY UPDATE

Diese Syntax ermöglicht es Ihnen, neue Zeilen in eine Tabelle einzufügen und gleichzeitig vorhandene Zeilen zu aktualisieren, wenn die Werte in einem UNIQUE- oder PRIMARY KEY-Index bereits vorhanden sind. Wenn die neue Zeile einen doppelten Wert verursacht, führt MySQL die folgenden Schritte aus:

  1. Erste Prüfung: MySQL prüft zunächst anhand des eindeutigen oder, ob die vorhandene Zeile mit der eingehenden Zeile übereinstimmt Primärschlüssel.
  2. Aktualisieren, wenn wahr: Wenn eine Übereinstimmung gefunden wird, aktualisiert MySQL die vorhandene Zeile mit den neuen Werten, die im UPDATE angegeben sind Klausel.
  3. Einfügen, wenn falsch: Wenn keine Übereinstimmung gefunden wird, fügt MySQL die neue Zeile wie erwartet ein.

Beispiel:

INSERT INTO my_table (id, name, age)
VALUES (1, 'John Doe', 35)
ON DUPLICATE KEY UPDATE name = 'Jane Doe', age = 40;
Nach dem Login kopieren

Wenn in diesem Beispiel die Zeile mit der ID 1 bereits vorhanden ist, aktualisiert MySQL den Namen auf „Jane Doe“. und Alter auf 40. Andernfalls wird eine neue Zeile mit den angegebenen Werten eingefügt.

Das obige ist der detaillierte Inhalt vonWie kann ich die Funktionalität der MERGE-Anweisung von SQL in MySQL erreichen?. 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