In PHP beim Einfügen eines Stapels von Datensätzen in eine Datenbank mit Wenn es sich um ein eindeutiges Feld handelt, ist es wünschenswert, doppelte Eingabefehler zu ignorieren. Stattdessen möchten Sie sicherstellen, dass nur neue Datensätze ohne Unterbrechungen eingefügt werden.
Die Durchführung einer SELECT-Abfrage, um vor dem Einfügen nach vorhandenen Einträgen zu suchen, ist kein effizienter Ansatz. Hier sind alternative Methoden, die die integrierte Funktionalität von MySQL nutzen:
INSERT... IGNORE:
Mit dieser Syntax können Sie einen Datensatz einfügen und Ignorieren Sie es, wenn bereits ein Duplikat vorhanden ist. Es wird kein Fehler ausgegeben.
INSERT IGNORE INTO tbl (field1, field2, ...) VALUES (...);
REPLACE INTO:
Diese Syntax überschreibt einen vorhandenen Datensatz mit dem neuen, wenn es sich um den Primärschlüssel handelt Streichhölzer. Es wird ein Fehler ausgegeben, wenn der Primärschlüssel nicht eindeutig ist.
REPLACE INTO tbl (field1, field2, ...) VALUES (...);
INSERT... ON DUPLICATE KEY UPDATE:
This Die Syntax fügt einen neuen Datensatz ein oder führt eine Aktualisierung durch, wenn ein doppelter Primärschlüssel vorhanden ist gefunden.
INSERT INTO tbl (field1, field2, ...) VALUES (...) ON DUPLICATE KEY UPDATE field2 = NEW.field2;
Angenommen eine Tabelle namens „tbl“ mit den Spalten „id“ und „value“, die zunächst einen Datensatz mit „id“ = enthält 1 und 'Wert' = 1:
REPLACE INTO:
REPLACE INTO tbl (id, value) VALUES (1, 50);
Ergebnis: Überschreibt den vorhandenen Datensatz mit „Wert“ = 50.
INSERT IGNORE:
INSERT IGNORE INTO tbl (id, value) VALUES (1, 10);
Ergebnis: Ignoriert den doppelten Eintrag bereits seit „id“ 1 existiert.
INSERT... ON DUPLICATE KEY UPDATE:
INSERT INTO tbl (id, value) VALUES (1, 200) ON DUPLICATE KEY UPDATE value = 200;
Ergebnis: Aktualisiert den vorhandenen Datensatz mit „Wert“ = 200 da 'id' 1 bereits existiert.
Das obige ist der detaillierte Inhalt vonWie kann man doppelte Einträge bei MySQL-Einfügungen in PHP effizient verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!