Heim >Datenbank >MySQL-Tutorial >Wie behebt man den MySQL-Fehler 1062: Doppelter Eintrag „0' für Primärschlüssel?

Wie behebt man den MySQL-Fehler 1062: Doppelter Eintrag „0' für Primärschlüssel?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-29 07:53:14576Durchsuche

How to Fix MySQL Error 1062: Duplicate Entry '0' for Primary Key?

Fehlerbehebung bei MySQL-Fehler: Doppelter Eintrag „0“ für Primärschlüssel

Beim Versuch, den Primärschlüssel der Tabelle momento_distribution in MySQL zu ändern, ist ein Fehler aufgetreten. Die Fehlermeldung „1062 – Doppelter Eintrag ‚0‘ für Schlüssel ‚PRIMARY‘“ weist darauf hin, dass die neue Primärschlüsselspalte doppelte Werte enthält.

Analyse

Bei der Untersuchung haben Sie festgestellt, dass die neu erstellte Die ID-Spalte hat in allen Zeilen den Wert „0“. Dieser Konflikt verhindert die Zuweisung eines eindeutigen Primärschlüssels aufgrund des Vorhandenseins doppelter Datensätze.

Lösung

Um dieses Problem zu beheben, müssen Sie sicherstellen, dass die Primärschlüsselspalte eindeutige Werte enthält. Der gebräuchlichste Ansatz besteht darin, die Spalte automatisch zu erhöhen, wodurch automatisch eindeutige Werte für jede neue Zeile generiert werden.

Tabellenerstellung ändern:

CREATE TABLE `momento_distribution`
  (
     `momento_id`       INT(11) NOT NULL AUTO_INCREMENT,
     `momento_idmember` INT(11) NOT NULL,
     `created_at`       DATETIME DEFAULT NULL,
     `updated_at`       DATETIME DEFAULT NULL,
     `unread`           TINYINT(1) DEFAULT '1',
     `accepted`         VARCHAR(10) NOT NULL DEFAULT 'pending',
     `ext_member`       VARCHAR(255) DEFAULT NULL,
     PRIMARY KEY (`momento_id`, `momento_idmember`),
     KEY `momento_distribution_FI_2` (`momento_idmember`),
     KEY `accepted` (`accepted`, `ext_member`)
  )
ENGINE=InnoDB
DEFAULT CHARSET=latin1$$

Vorhandene Tabelle ändern:

ALTER TABLE `momento_distribution`
  CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT,
  DROP PRIMARY KEY,
  ADD PRIMARY KEY (`id`);

Hinweis: Dies geht davon aus, dass die ID-Spalte bereits vorhanden ist. Ist dies nicht der Fall, müssen Sie es mit der ALTER-Anweisung erstellen.

Das obige ist der detaillierte Inhalt vonWie behebt man den MySQL-Fehler 1062: Doppelter Eintrag „0' für Primärschlüssel?. 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