Heim > Datenbank > MySQL-Tutorial > Wie kann ich Upserts in MySQL effizient durchführen?

Wie kann ich Upserts in MySQL effizient durchführen?

DDD
Freigeben: 2025-01-21 11:47:11
Original
475 Leute haben es durchsucht

How Can I Efficiently Perform Upserts in MySQL?

MySQL-Upsert-Vorgang: Aktualisieren, wenn vorhanden, einfügen, wenn nicht vorhanden

Frage:

Gibt es in MySQL eine effiziente Möglichkeit, eine „Upsert“-Operation durchzuführen, d. h. eine neue Zeile einzufügen, wenn sie nicht existiert, und die vorhandene Zeile zu aktualisieren, wenn sie existiert?

Antwort:

Ja, MySQL stellt die INSERT ... ON DUPLICATE KEY UPDATE-Syntax zur Verfügung, um diese Funktionalität zu erreichen. Hier ist ein Beispiel:

Beispiel:

<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

Anleitung:

    Die
  • INSERT INTO-Klausel versucht, eine neue Zeile mit dem angegebenen Wert einzufügen.
  • Die
  • ON DUPLICATE KEY UPDATE-Klausel definiert, was passieren soll, wenn ein eindeutiger Schlüsselkonflikt auftritt (d. h. wenn bereits eine Zeile mit demselben thing_id vorhanden ist).
  • In diesem Beispiel wird die vorhandene Zeile aktualisiert, indem 1 zur Spalte times_used hinzugefügt wird.

Vorteile:

  • Effizient: Führen Sie Upsert-Vorgänge über eine einzige Abfrage aus und reduzieren Sie so die Anzahl der Datenbank-Roundtrips.
  • Sicherheit: Behandeln Sie Konflikte mit doppelten Zeilen reibungslos und stellen Sie die Datenintegrität sicher.
  • Flexibel: kann verwendet werden, um neue Zeilen einzufügen, vorhandene Zeilen zu aktualisieren oder beides.

Das obige ist der detaillierte Inhalt vonWie kann ich Upserts in MySQL effizient durchführen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage