Heim > Datenbank > MySQL-Tutorial > Wie löse ich den MySQL-Fehler 1062: Doppelter Eintrag „0' für Schlüssel „PRIMARY' ohne Datenverlust?

Wie löse ich den MySQL-Fehler 1062: Doppelter Eintrag „0' für Schlüssel „PRIMARY' ohne Datenverlust?

Linda Hamilton
Freigeben: 2025-01-04 13:59:41
Original
670 Leute haben es durchsucht

How to Solve MySQL Error 1062: Duplicate Entry '0' for Key 'PRIMARY' Without Data Loss?

MySQL-Fehler 1062: Erstellen einer Lösung ohne Datenverlust

Im Bereich MySQL stoßen Sie auf Fehler 1062: „Doppelter Eintrag '0 ' für den Schlüssel 'PRIMARY'". Dies tritt auf, wenn versucht wird, den Primärschlüssel einer Tabelle zu ändern und dabei Fremdschlüsselbeziehungen und Datenintegrität zu wahren. Um diese Angelegenheit genauer zu untersuchen, untersuchen wir den dargestellten Fall.

Die bereitgestellte Abfrage zielt darauf ab, die Tabelle momento_distribution zu ändern, indem eine neue ID-Spalte als Primärschlüssel hinzugefügt wird, während die bestehenden Beziehungen beibehalten werden. Die Abfrage schlägt jedoch aufgrund doppelter Einträge im neuen Primärschlüssel fehl.

Die Analyse zeigt, dass die neu erstellte ID-Spalte in allen Zeilen den Wert „0“ enthält. Da ein Primärschlüssel eindeutige Werte enthalten muss, wird diese Duplizierung zu einem Hindernis. Um dies zu überwinden, müssen wir die ID-Spalte als automatische Inkrementierung konfigurieren, um die automatische Generierung eindeutiger Werte sicherzustellen.

Überarbeitete Abfrage für nahtlose Ausführung:

< pre>
TABELLE ERSTELLEN momento_distribution
(

 `id`                 INT(11) NOT NULL AUTO_INCREMENT,
 `momento_id`       INT(11) NOT NULL,
 `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`)
Nach dem Login kopieren

)
ENGINE=InnoDB
DEFAULT CHARSET=latin1;

Alternativ, wenn Sie bereits eine ID-Spalte mit Werten haben , versuchen Sie Folgendes:

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

Mit diesen Bei Änderungen weist MySQL dem neuen Primärschlüssel automatisch eindeutige Werte zu und löst so die Duplizierung auf Ausgabe. Ihre Tabellenstruktur wird entsprechend angepasst, um Ihre Daten zu schützen und die Integrität Ihrer Datenbank sicherzustellen.

Das obige ist der detaillierte Inhalt vonWie löse ich den MySQL-Fehler 1062: Doppelter Eintrag „0' für Schlüssel „PRIMARY' ohne Datenverlust?. 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