Heim  >  Artikel  >  Datenbank  >  Doppelter Eintrag für Schlüssel „PRIMARY“ – So beheben Sie den MySQL-Fehler: Doppelter Datensatz des Primärschlüssels

Doppelter Eintrag für Schlüssel „PRIMARY“ – So beheben Sie den MySQL-Fehler: Doppelter Datensatz des Primärschlüssels

PHPz
PHPzOriginal
2023-10-05 14:49:076037Durchsuche

Duplicate entry for key 'PRIMARY' - 如何解决MySQL报错:主键重复记录

So beheben Sie den MySQL-Fehler: Doppelte Primärschlüsseldatensätze, es sind spezifische Codebeispiele erforderlich.

Bei der Verwendung einer MySQL-Datenbank stoßen wir häufig auf das Problem doppelter Primärschlüsseldatensätze. Wenn wir ein neues Datenelement in die Datenbank einfügen und der Primärschlüsselwert der Daten mit dem Primärschlüsselwert eines vorhandenen Datensatzes übereinstimmt, tritt ein Fehler beim Duplizieren des Primärschlüsseldatensatzes auf. Die Eingabeaufforderung für diesen Fehler lautet normalerweise „Doppelter Eintrag für Schlüssel ‚PRIMARY‘“.

Also, wie kann man dieses Problem lösen? In diesem Artikel werden verschiedene Lösungen und spezifische Codebeispiele bereitgestellt.

  1. Verwenden Sie die ON DUPLICATE KEY UPDATE-Anweisung.
    Die ON DUPLICATE KEY UPDATE-Anweisung ist ein von MySQL bereitgestellter Mechanismus zur Verarbeitung doppelter Primärschlüsseldatensätze. Wenn beim Einfügen von Daten ein Fehler aufgrund doppelter Primärschlüsseldatensätze auftritt, können Sie mit dieser Anweisung vorhandene Datensätze aktualisieren.

Beispielcode:

INSERT INTO table_name (id, name, age) VALUES (1, 'John', 30) 
ON DUPLICATE KEY UPDATE name = 'John', age = 30;

Im obigen Beispiel fügen wir ein Datenelement mit dem Namen table_name ein. Wenn die Primärschlüssel-ID der Daten bereits vorhanden ist, wird die UPDATE-Anweisung ausgeführt, um die Werte von zu aktualisieren die Namens- und Altersfelder des entsprechenden Datensatzes.

  1. Verwenden Sie die INSERT IGNORE-Anweisung.
    Eine andere Lösung ist die Verwendung der INSERT IGNORE-Anweisung. Wenn diese Anweisung Daten einfügt und ein Fehler beim doppelten Datensatz des Primärschlüssels auftritt, wird der Fehler ignoriert und der Einfügevorgang wird nicht unterbrochen.

Beispielcode:

INSERT IGNORE INTO table_name (id, name, age) VALUES (1, 'John', 30);

Wenn im obigen Beispiel der Datensatz mit der ID 1 bereits vorhanden ist, wird der Fehler ignoriert und der Einfügevorgang wird fortgesetzt.

  1. Ändern Sie den Primärschlüsselwert.
    Wenn beim manuellen Einfügen von Daten der Fehler beim doppelten Datensatz des Primärschlüssels auftritt, können wir den Wert des Primärschlüssels ändern, um Duplikate zu vermeiden.

Beispielcode:

SET @max_id = (SELECT MAX(id) FROM table_name);
INSERT INTO table_name (id, name, age) VALUES (@max_id + 1, 'John', 30);

Im obigen Beispiel fragen wir den Maximalwert von id in der aktuellen Tabelle ab und speichern ihn in der Variablen @max_id. Setzen Sie dann beim Einfügen eines Datenelements die ID auf @max_id + 1, um sicherzustellen, dass sich die ID des neu eingefügten Datensatzes nicht mit dem vorhandenen Datensatz überschneidet.

Es ist zu beachten, dass Sie beim Ändern des Primärschlüsselwerts vorsichtig sein müssen, um sicherzustellen, dass keine anderen Probleme entstehen.

Zusammenfassung:
Doppelte Primärschlüsseldatensätze sind einer der häufigsten Fehler in MySQL. Um dieses Problem zu lösen, können Sie die Anweisung ON DUPLICATE KEY UPDATE verwenden, um vorhandene Datensätze zu aktualisieren, die Anweisung INSERT IGNORE verwenden, um Fehler aufgrund doppelter Datensätze zu ignorieren, oder den Primärschlüsselwert ändern, um Duplikate zu vermeiden. Wählen Sie die richtige Lösung für Ihre Situation und passen Sie Ihren Code an Ihre tatsächlichen Bedürfnisse an.

Ich hoffe, dass die in diesem Artikel bereitgestellten Lösungen und Codebeispiele Ihnen bei der Lösung des MySQL-Fehlers helfen können: Problem mit doppelten Primärschlüsseldatensätzen.

Das obige ist der detaillierte Inhalt vonDoppelter Eintrag für Schlüssel „PRIMARY“ – So beheben Sie den MySQL-Fehler: Doppelter Datensatz des Primärschlüssels. 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