Fehlerbehebung „Kann nicht schreiben; doppelter Schlüssel in der Tabelle“ Fehler
Beim Auftreten eines 1022-Fehlers beim Ausführen eines CREATE TABLE-Befehls aufgrund von Bei doppelten Schlüsseln ist es wichtig, die Abfrage zu überprüfen und die Quelle der Duplizierung zu identifizieren.
Im Beispiel Vorausgesetzt, die Fehlermeldung weist auf ein Problem im Zusammenhang mit den Einschränkungen „iduser“ und „idcategory“ hin. Höchstwahrscheinlich sind in der Datenbank bereits Einschränkungen mit diesen Namen definiert.
Doppelte Einschränkungen auflösen
Um dieses Problem zu beheben, müssen Sie die doppelten Einschränkungen umbenennen. Einschränkungen müssen in der gesamten Datenbank eindeutig sein und dürfen nicht auf die bestimmte Tabelle beschränkt sein, die erstellt oder geändert wird.
Vorhandene Einschränkungen finden
Um herauszufinden, wo sich die doppelten Einschränkungen derzeit befinden verwenden, führen Sie die folgende Abfrage aus:
SELECT `TABLE_SCHEMA`, `TABLE_NAME` FROM `information_schema`.`KEY_COLUMN_USAGE` WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');
Diese Abfrage gibt das Tabellenschema und den Tabellennamen zurück, in dem jede Einschränkung verwendet wird. Sobald Sie die widersprüchlichen Einschränkungen identifiziert haben, können Sie sie mit dem Befehl ALTER TABLE umbenennen. Zum Beispiel:
ALTER TABLE `apptwo`.`usercircle` DROP CONSTRAINT `iduser`; ALTER TABLE `apptwo`.`usercircle` ADD CONSTRAINT `user_constraint` FOREIGN KEY (`userId`) REFERENCES `apptwo`.`user` (`idUser`) ON DELETE NO ACTION ON UPDATE NO ACTION;
Das obige ist der detaillierte Inhalt vonWie behebe ich den MySQL-Fehler „Schreiben nicht möglich; doppelter Schlüssel in der Tabelle' (1022)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!