Heim >Datenbank >MySQL-Tutorial >INSERT vs. UPDATE bei doppelten Schlüsseln: Wie gehe ich mit Konflikten in MySQL um?

INSERT vs. UPDATE bei doppelten Schlüsseln: Wie gehe ich mit Konflikten in MySQL um?

DDD
DDDOriginal
2024-11-27 03:18:141017Durchsuche

INSERT vs. UPDATE on Duplicate Keys: How to Handle Conflicts in MySQL?

Beim Umgang mit doppelten Schlüsseln

Beim Einfügen eindeutiger Werte in eine Datenbanktabelle kommt es häufig vor, dass doppelte Datensätze erkannt werden. In solchen Fällen haben Sie die Möglichkeit zu bestimmen, wie mit diesen Konflikten umgegangen werden soll.

INSERT IGNORE vs. INSERT ON DUPLICATE KEY UPDATE

Die INSERT IGNORE-Anweisung ignoriert einfach alle Fehler und fährt mit dem Einfügen von Zeilen fort. Dies wird jedoch nicht empfohlen, da es zu unvorhergesehenen Folgen und Dateninkonsistenzen führen kann.

Stattdessen ist „INSERT ON DUPLICATE KEY UPDATE“ eine geeignetere Option, mit der Sie eine Aktualisierungsaktion festlegen können, wenn ein Konflikt auftritt. In Ihrem Fall, in dem der eindeutige Schlüssel das Tag-Feld ist, können Sie die folgende Syntax verwenden:

INSERT INTO table_tags (tag) VALUES ('tag_a'),('tab_b'),('tag_c')
ON DUPLICATE KEY UPDATE tag=tag;

Diese Anweisung versucht, die angegebenen Werte einzufügen. Wenn eines der Tags bereits vorhanden ist, setzt die Aktualisierungsklausel einfach den Tag-Wert auf sich selbst und ignoriert effektiv das doppelte Tag.

Testen der Abfrage

Ausführen der Abfrage führt zur folgenden Ausgabe:

Query OK, 0 rows affected (0.07 sec)

Dies bestätigt, dass die doppelten Tags ignoriert wurden und die verbleibenden Zeilen erfolgreich waren eingefügt.

Das obige ist der detaillierte Inhalt vonINSERT vs. UPDATE bei doppelten Schlüsseln: Wie gehe ich mit Konflikten in MySQL um?. 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