Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gehe ich mit doppelten Einträgen beim Einfügen von Daten in MySQL um?

Wie gehe ich mit doppelten Einträgen beim Einfügen von Daten in MySQL um?

Barbara Streisand
Barbara StreisandOriginal
2024-10-31 02:48:02316Durchsuche

How to Handle Duplicate Entries When Inserting Data into MySQL?

MySQL – Umgang mit doppelten Einträgen beim Einfügen

Beim Einfügen von Datensätzen in eine Datenbank, die eindeutige Felder enthält, kommt es häufig zu doppelten Einträgen Fehler. Diese Fehler können Batch-Einfügungsvorgänge unterbrechen, bei denen nur die neuen Datensätze eingefügt werden sollten.

Einfügen mit Ignorieren

MySQL bietet die INSERT...IGNORE-Syntax, Dadurch können Einfügungen fortgesetzt werden, ohne dass ein Fehler generiert wird, wenn ein doppelter Eintrag auftritt. Zum Beispiel:

INSERT IGNORE INTO tbl (id, name) VALUES (1, 'John Doe');

Wenn bereits ein Eintrag mit der ID=1 vorhanden ist, wird die Anweisung erfolgreich ausgeführt, ohne dass eine neue Zeile eingefügt wird.

Replace

Die REPLACE INTO-Syntax überschreibt einen vorhandenen Datensatz mit einem neuen, der denselben Primärschlüssel hat. Dies kann nützlich sein, wenn Sie sicherstellen möchten, dass die neuesten Daten in der Tabelle gespeichert sind:

REPLACE INTO tbl (id, name) VALUES (1, 'Jane Doe');

Wenn in diesem Fall id=1 vorhanden ist, wird der alte Datensatz gelöscht und der neue gelöscht eingefügt.

Einfügen mit ON DUPLICATE KEY UPDATE

Mit der Syntax INSERT...ON DUPLICATE KEY UPDATE können Sie eine Aktion angeben, die bei einem doppelten Eintrag ausgeführt werden soll angetroffen wird. Sie können beispielsweise den vorhandenen Datensatz aktualisieren:

INSERT INTO tbl (id, name) VALUES (1, 'Alice Smith') ON DUPLICATE KEY UPDATE name = 'Alice Smith';

Wenn id=1 vorhanden ist, wird der Name des vorhandenen Datensatzes in „Alice Smith“ aktualisiert.

Beispiele< /h4>

Betrachten Sie eine Tabelle namens tbl mit den Spalten id und value, die eine Zeile enthält: (1, 1).

  • REPLACE:

    REPLACE INTO tbl VALUES (1, 50);

    Ergebnis: (1, 50) (ersetzt den vorhandenen Datensatz)

  • INSERT IGNORE:

    INSERT IGNORE INTO tbl VALUES (1, 10);

    Ergebnis: Keine Änderung (ignoriert den doppelten Eintrag)

  • INSERT WITH ON DUPLICATE KEY UPDATE:

    INSERT INTO tbl VALUES (1, 200) ON DUPLICATE KEY UPDATE value = 200;

    Ergebnis: (1 , 200) (aktualisiert den vorhandenen Datensatz)

Das obige ist der detaillierte Inhalt vonWie gehe ich mit doppelten Einträgen beim Einfügen von Daten in MySQL um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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