Beim Einfügen neuer Datensätze in eine MySQL-Datenbank mit einem eindeutigen Feld tritt häufig der Fehler „doppelter Eintrag“ auf. Um solche Fehler elegant zu behandeln, gibt es mehrere Ansätze:
Die INSERT ... IGNORE-Syntax kann verwendet werden, um Fehler beim Versuch, einen doppelten Datensatz einzufügen, zu verhindern. Das Einfügen wird ohne Fehlermeldung übersprungen.
Im Gegensatz zu INSERT IGNORE löscht REPLACE INTO alle vorhandenen Datensätze mit demselben Primärschlüssel, bevor ein neuer eingefügt wird. Dadurch wird sichergestellt, dass die Tabelle nur einen Datensatz pro eindeutigem Schlüssel enthält.
Mit dieser Syntax können Sie eine Aktualisierung des vorhandenen Datensatzes durchführen, anstatt einen neuen einzufügen eins. Dies kann für Szenarien nützlich sein, in denen Sie bestimmte Spaltenwerte aktualisieren und gleichzeitig die vorhandenen Daten beibehalten möchten.
Stellen Sie sich eine Tabelle tbl mit zwei Spalten vor, ID und Wert. Nehmen wir an, wir haben einen einzelnen Datensatz mit ID=1 und Wert=1.
REPLACE INTO:
REPLACE INTO tbl (id, value) VALUES (1, 50);
Dies führt zu ein einzelner Datensatz mit id=1 und Wert=50.
INSERT IGNORE:
INSERT IGNORE INTO tbl (id, value) VALUES (1, 10);
Keine Aktion wird angezeigt, da bereits ein Datensatz mit der ID=1 vorhanden ist.
EINFÜGEN ... BEI DER AKTUALISIERUNG DES DUPLIKATEN SCHLÜSSELS:
INSERT INTO tbl (id, value) VALUES (1, 200) ON DUPLICATE KEY UPDATE value=200;
Dadurch wird der vorhandene Datensatz mit der ID=1 auf den Wert=200 aktualisiert.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit doppelten Einträgen während der MySQL-Einfügung um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!