Heim > Datenbank > MySQL-Tutorial > Wie kann MySQLs INSERT ... ON DUPLICATE KEY UPDATE Einfügungen und Aktualisierungen effizient verarbeiten?

Wie kann MySQLs INSERT ... ON DUPLICATE KEY UPDATE Einfügungen und Aktualisierungen effizient verarbeiten?

Barbara Streisand
Freigeben: 2025-01-21 11:57:09
Original
1006 Leute haben es durchsucht

How Can MySQL's INSERT ... ON DUPLICATE KEY UPDATE Efficiently Handle Inserts and Updates?

Effizientes Upsert von MySQL: INSERT ... ON DUPLICATE KEY UPDATE

MySQL sieht sich häufig mit Szenarios konfrontiert, die das Einfügen einer neuen Zeile oder das Aktualisieren einer vorhandenen Zeile basierend auf dem Vorhandensein eines Schlüssels erfordern. Dieser kombinierte Vorgang, bekannt als Upsert (oder Merge), wird in MySQL elegant mit einer einzigen Anweisung gehandhabt.

Nutzung von INSERT ... ON DUPLICATE KEY UPDATE

Anstelle mehrerer Abfragen optimiert die INSERT ... ON DUPLICATE KEY UPDATE-Anweisung von MySQL diesen Prozess. Die Syntax ist unkompliziert:

<code class="language-sql">INSERT INTO `table_name`
(`column1`, `column2`, ...)
VALUES
(`value1`, `value2`, ...)
ON DUPLICATE KEY UPDATE
`column1` = `value1`,
`column2` = `value2`,
...</code>
Nach dem Login kopieren

Praktische Anwendung: Nutzungszählungen erhöhen

Stellen Sie sich eine usage-Tabelle mit den Spalten thing_id, times_used und first_time_used vor. Das Ziel besteht darin, times_used für ein gegebenes thing_id zu erhöhen, wenn die Zeile vorhanden ist; Andernfalls fügen Sie eine neue Zeile ein.

Diese Aufgabe lässt sich ganz einfach mit INSERT ... ON DUPLICATE KEY UPDATE:

erledigen
<code class="language-sql">INSERT INTO `usage`
(`thing_id`, `times_used`, `first_time_used`)
VALUES
(4815162342, 1, NOW())
ON DUPLICATE KEY UPDATE
`times_used` = `times_used` + 1</code>
Nach dem Login kopieren

Diese Abfrage behandelt beide Szenarien intelligent: Wenn thing_id 4815162342 vorhanden ist, wird times_used inkrementiert; andernfalls wird eine neue Zeile mit den angegebenen Werten hinzugefügt. Dies zeigt die Effizienz und Prägnanz der Upsert-Funktionalität von MySQL.

Das obige ist der detaillierte Inhalt vonWie kann MySQLs INSERT ... ON DUPLICATE KEY UPDATE Einfügungen und Aktualisierungen effizient 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