Ich habe die folgende Tabelle in MySQL Version 5.5.24MySQL 1062 - doppelter Eintrag '0' für Schlüssel 'primären'
DROP TABLE IF EXISTS `momento_distribution`;
CREATE TABLE IF NOT EXISTS `momento_distribution`
(
`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;
Es hat viele Daten mit many-to-one Beziehungen zu zwei anderen Tabellen mit ondelete=restrict
und onupdate=restrict
.
Jetzt muss ich die Struktur ändern und separaten Primärschlüssel in der Tabelle einführen, während noch vorhandene Beziehungen und Daten beibehalten werden. Dafür ausgeführt ich die folgende Abfrage:
ALTER TABLE `momento_distribution` ADD `id` INT(11) NOT NULL FIRST;
ALTER TABLE `momento_distribution` DROP PRIMARY KEY , ADD PRIMARY KEY ( `id`);
Leider meine zweite Abfrage mit dem folgenden Fehler fehlgeschlagen:
1062 - Duplicate entry '0' for key 'PRIMARY'
Kann jemand bitte das Problem hinweisen? Ich vermute, dass das Problem die bestehende Beziehung ist, aber ich möchte die bestehende Beziehung oder Daten, die mehrere tausend Zeilen haben, nicht verlieren. Gibt es eine Möglichkeit, dies zu tun, ohne Daten zu verlieren?
EDIT: Durch Anzeigen von Daten, habe ich, dass die neu erstellte Spalte den Wert '0' drin hat. Wahrscheinlich erlaubt dies nicht, den Primärschlüssel aufgrund von doppelten Datensätzen zu ändern (im neuen Primärschlüssel)
Ich habe mehr als 8.000 Zeilen, daher kann ich sie nicht manuell ändern. Gibt es eine Möglichkeit, rowid
einem neuen Primärschlüssel zuzuordnen?
weggelassen Dank @Youthpark, ich versuche diese Abfragen und in den nächsten 10 Minuten max. Danke für die Hilfe. Ich bin wirklich frustriert über dieses Problem. –
Im Falle eines Problems, kommen Sie mit Struktur aller Tabellen & mit Fehlercode. –
Endlich erledigt. Ich steckte seit gestern dort fest. Danke vielmals. –