Heim >Datenbank >MySQL-Tutorial >INSERT vs. UPDATE bei doppelten Schlüsseln: Wie gehe ich mit Konflikten in MySQL um?
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!