Heim > Datenbank > MySQL-Tutorial > Wie kann man doppelte Einträge bei MySQL-Einfügungen in PHP effizient verarbeiten?

Wie kann man doppelte Einträge bei MySQL-Einfügungen in PHP effizient verarbeiten?

Mary-Kate Olsen
Freigeben: 2024-12-01 08:59:14
Original
802 Leute haben es durchsucht

How to Efficiently Handle Duplicate Entries During MySQL Inserts in PHP?

MySQL – Einfügungen doppelter Einträge ignorieren

Szenario: Einfügen eindeutiger Datensätze ohne Fehler

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.

SELECT-INSERT-Prüfungen vermeiden

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:

  1. 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 (...);
    Nach dem Login kopieren
  2. 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 (...);
    Nach dem Login kopieren
  3. 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;
    Nach dem Login kopieren

Beispiele

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);
    Nach dem Login kopieren

    Ergebnis: Überschreibt den vorhandenen Datensatz mit „Wert“ = 50.

  • INSERT IGNORE:

    INSERT IGNORE INTO tbl (id, value) VALUES (1, 10);
    Nach dem Login kopieren

    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;
    Nach dem Login kopieren

    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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage