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`)
)
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!