Heim >Datenbank >MySQL-Tutorial >Wie füge ich Zeilen in MySQL mit INSERT...ON DUPLICATE KEY UPDATE ein oder aktualisiere sie?

Wie füge ich Zeilen in MySQL mit INSERT...ON DUPLICATE KEY UPDATE ein oder aktualisiere sie?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-24 02:32:09637Durchsuche

How to Insert or Update Rows in MySQL Using INSERT...ON DUPLICATE KEY UPDATE?

Umgang mit doppelten Schlüsselkonflikten in MySQL: INSERT...ON DUPLICATE KEY UPDATE

Beim Einfügen von Daten in eine MySQL-Tabelle mit einer eindeutigen Schlüsselbeschränkung entsteht ein Konflikt, wenn ein doppelter Schlüssel auftritt. Die INSERT...ON DUPLICATE KEY UPDATE-Anweisung löst dieses Problem auf elegante Weise, indem sie es Ihnen ermöglicht, basierend auf dem eindeutigen Schlüssel entweder eine neue Zeile einzufügen oder eine vorhandene zu aktualisieren.

Betrachten wir eine Tabelle mit einer eindeutigen „ID“-Spalte. Wenn Sie versuchen, eine Zeile mit einer vorhandenen ID einzufügen, schlägt eine Standardanweisung INSERT fehl. Das INSERT...ON DUPLICATE KEY UPDATE bietet eine Lösung.

Beispielszenario:

Stellen Sie sich vor, Sie fügen Daten zu einer users Tabelle hinzu:

INSERT INTO users (ID, Name, Age) VALUES (1, "Bob", 30);

Wenn ein Benutzer mit ID = 1 bereits existiert, schlägt diese Abfrage fehl.

Die Lösung:

Verwenden Sie INSERT...ON DUPLICATE KEY UPDATE:

INSERT INTO users (ID, Name, Age) VALUES (1, "Bob", 30) ON DUPLICATE KEY UPDATE Name = "Bob", Age = 30;

Erklärung:

  • Der Teil INSERT gibt die einzufügenden Daten an.
  • ON DUPLICATE KEY UPDATE bestimmt die Aktualisierungsaktion, wenn ein doppelter Schlüssel gefunden wird.
  • Wenn in diesem Beispiel ID = 1 vorhanden ist, werden die Spalten Name und Age mit den bereitgestellten Werten aktualisiert. Wenn ID = 1 nicht existiert, wird eine neue Zeile eingefügt.

Dieser Ansatz stellt die Datenintegrität sicher und verhindert gleichzeitig Fehler, die durch doppelte Schlüsseleinfügungen verursacht werden. Es ist eine übersichtliche und effiziente Möglichkeit, Datenaktualisierungen in MySQL zu verwalten.

Das obige ist der detaillierte Inhalt vonWie füge ich Zeilen in MySQL mit INSERT...ON DUPLICATE KEY UPDATE ein oder aktualisiere sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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