Heim > Datenbank > MySQL-Tutorial > Wie kann ich MySQL-Datensätze mit „ON DUPLICATE KEY UPDATE' effizient einfügen oder aktualisieren?

Wie kann ich MySQL-Datensätze mit „ON DUPLICATE KEY UPDATE' effizient einfügen oder aktualisieren?

Linda Hamilton
Freigeben: 2024-12-12 22:34:13
Original
912 Leute haben es durchsucht

How Can I Efficiently Insert or Update MySQL Records Using `ON DUPLICATE KEY UPDATE`?

Effiziente MySQL-Abfrage mit „Bei Aktualisierung doppelter Schlüssel gleich wie beim Einfügen“

Zur Optimierung von MySQL-Abfragen, bei denen Datensätze basierend auf Eindeutigkeit eingefügt oder aktualisiert werden Schlüsseln ist es wichtig, die Klausel „On Duplicate Key Update“ zu nutzen. Mit dieser Klausel können Sie Aktionen angeben, die ausgeführt werden sollen, wenn während einer Einfügung ein doppelter Schlüssel gefunden wird.

Beim Einfügen eines Datensatzes mit einem eindeutigen Schlüssel können Sie die Klausel „On Duplicate Key Update“ angeben, um vorhandene zu aktualisieren Felder, falls der Schlüssel bereits vorhanden ist. Dadurch entfällt die Notwendigkeit, alle Feldwerte erneut explizit anzugeben, was eine präzisere und effizientere Abfrage ermöglicht. Betrachten wir beispielsweise die gegebene MySQL-Abfrage:

INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8)
Nach dem Login kopieren

Wenn das Feld „id“ einen eindeutigen Index hat, können Sie den vorhandenen Datensatz mit demselben Schlüssel aktualisieren, indem Sie Folgendes verwenden:

INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8) 
ON DUPLICATE KEY UPDATE a=VALUES(a), b=VALUES(b), c=VALUES(c), d=VALUES(d), e=VALUES(e), f=VALUES(f), g=VALUES(g)
Nach dem Login kopieren

In diesem Fall aktualisiert die Klausel „On Duplicate Key Update“ die Felder „a“ bis „g“ mit ihren jeweiligen Werten in der insert-Klausel. Dies vereinfacht die Abfrage, da nicht alle Feldwerte explizit wiederholt werden müssen.

Es ist jedoch zu beachten, dass die Aktualisierungsaktion nicht ausgeführt wird, wenn die vorhandenen Werte in der Tabelle mit den eingefügten Werten übereinstimmen. Dies liegt daran, dass die Felder nicht aktualisiert werden müssen, wenn sie bereits die gewünschten Werte enthalten.

Um die ID des eingefügten oder aktualisierten Datensatzes abzurufen, können Sie die Funktion „LAST_INSERT_ID()“ verwenden. Die spezifische Syntax für den Zugriff auf diese Funktion variiert je nach verwendeter Backend-Anwendung. In LuaSQL können Sie beispielsweise „conn:getlastautoid()“ verwenden, um die letzte automatisch generierte ID abzurufen.

Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-Datensätze mit „ON DUPLICATE KEY UPDATE' effizient einfügen oder aktualisieren?. 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