Wie ignoriere ich doppelte Schlüssel beim Einfügen?
Sie versuchen, Daten in eine Tabelle einzufügen, in der das Tag-Feld eine UNIQUE-Einschränkung hat . Um doppelte Tags zu ignorieren, suchen Sie nach einer Lösung, die diese doppelten Einfügungen ignoriert.
Lösung:
Anstatt INSERT IGNORE zu verwenden, das alle Fehler unterdrückt, sollten Sie die Verwendung von in Betracht ziehen folgende Ansatz:
INSERT INTO table_tags (tag) VALUES ('tag_a'),('tab_b'),('tag_c') ON DUPLICATE KEY UPDATE tag=tag;
Erklärung:
Wenn bei Verwendung von ON DUPLICATE KEY UPDATE bereits ein Tag in der Datenbank vorhanden ist, wird sein Wert nicht aktualisiert. Das bedeutet, dass doppelte Einfügungen ignoriert werden, ohne dass es zu einem Fehler kommt. Der Code, den Sie mit dem „*“ angegeben haben, funktioniert nicht, da er nicht angibt, welches Tag ignoriert werden soll.
Beispiel:
Wenn Sie die obige Abfrage ausführen, Sie werden feststellen, dass die folgende Meldung angezeigt wird:
Query OK, 0 rows affected (0.07 sec)
Dies zeigt an, dass die Daten erfolgreich eingefügt wurden, wobei alle doppelten Tags ignoriert wurden.
Das obige ist der detaillierte Inhalt vonWie ignoriere ich doppelte Schlüsseleinfügungen in SQL ohne Fehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!