Sie können die Syntax INSERT ... IGNORE verwenden, wenn Sie bei einem doppelten Datensatz keine Aktion ausführen möchten.
Sie können die REPLACE INTO- Syntax verwenden, wenn Sie einen alten Datensatz mit demselben Schlüssel durch einen neuen überschreiben möchten.
Sie können auch die Syntax INSERT ... ON DUPLICATE KEY UPDATE verwenden, wenn Sie stattdessen eine Aktualisierung des Datensatzes durchführen möchten, wenn Sie auf ein Duplikat stoßen.
Bearbeiten: Ich dachte, ich würde einige Beispiele hinzufügen.
Beispiele
Angenommen, Sie haben eine Tabelle tblmit zwei Spalten idund value. Es gibt einen Eintrag, id = 1 und value = 1. Wenn Sie die folgenden Anweisungen ausführen:
REPLACE INTO tbl VALUES(1,50);
Sie haben noch einen Datensatz mit id = 1 value = 50. Beachten Sie, dass der gesamte Datensatz jedoch zuerst GELÖSCHT und dann erneut eingefügt wurde. Dann:
INSERT IGNORE INTO tbl VALUES (1,10);
Die Operation wird erfolgreich ausgeführt, es wird jedoch nichts eingefügt. Sie haben immer noch id = 1 und value = 50. Schließlich:
INSERT INTO tbl VALUES (1,200) ON DUPLICATE KEY UPDATE value=200;
Sie haben jetzt einen einzelnen Datensatz mit id = 1 und value = 200.