Heim > Datenbank > MySQL-Tutorial > Wie kann MySQLs ON DUPLICATE KEY UPDATE gleichzeitige Einfügungen und Aktualisierungen mehrerer Zeilen verarbeiten?

Wie kann MySQLs ON DUPLICATE KEY UPDATE gleichzeitige Einfügungen und Aktualisierungen mehrerer Zeilen verarbeiten?

Linda Hamilton
Freigeben: 2025-01-11 07:02:41
Original
998 Leute haben es durchsucht

How Can MySQL's ON DUPLICATE KEY UPDATE Handle Simultaneous Inserts and Updates of Multiple Rows?

MySQLs ON DUPLICATE KEY UPDATE: Effiziente Handhabung gleichzeitiger mehrzeiliger Einfügungen und Aktualisierungen

Beim Einfügen mehrerer Zeilen in eine MySQL-Tabelle kommt es zu Situationen, in denen Sie prüfen müssen, ob ein eindeutiger Schlüssel vorhanden ist (der sich vom Primärschlüssel unterscheidet), bevor Sie vorhandene Datensätze aktualisieren. Die ON DUPLICATE KEY UPDATE-Klausel bietet eine elegante Lösung.

MySQL 8.0.19 und spätere Versionen bieten eine verbesserte Syntax mit Aliasnamen für eingefügte Zeilen. Dies ermöglicht sauberere und besser lesbare Updates:

<code class="language-sql">INSERT INTO beautiful (name, age)
    VALUES
    ('Helen', 24),
    ('Katrina', 21),
    ('Samia', 22),
    ('Hui Ling', 25),
    ('Yumie', 29)
    AS new
ON DUPLICATE KEY UPDATE
    age = new.age
    ...</code>
Nach dem Login kopieren

Für MySQL-Versionen vor 8.0.19 (beachten Sie, dass die VALUES-Methode ab 8.0.20 veraltet ist) war der folgende Ansatz erforderlich:

<code class="language-sql">INSERT INTO beautiful (name, age)
    VALUES
    ('Helen', 24),
    ('Katrina', 21),
    ('Samia', 22),
    ('Hui Ling', 25),
    ('Yumie', 29)
ON DUPLICATE KEY UPDATE
    age = VALUES(age),
     ...</code>
Nach dem Login kopieren

Wenn in beiden Beispielen beim Einfügen ein eindeutiger Schlüsselkonflikt auftritt, wird die betroffene Zeile mit den bereitgestellten Werten aktualisiert. Andernfalls wird eine neue Zeile hinzugefügt.

Es ist wichtig, sich daran zu erinnern, dass VALUES innerhalb von ON DUPLICATE KEY UPDATE nicht auf den Wert der vorhandenen Zeile verweist, sondern auf den entsprechenden Spaltenwert aus der versuchten neuen Zeileneinfügung.

Das obige ist der detaillierte Inhalt vonWie kann MySQLs ON DUPLICATE KEY UPDATE gleichzeitige Einfügungen und Aktualisierungen mehrerer Zeilen verarbeiten?. 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