Heim >Datenbank >MySQL-Tutorial >Wie lösche ich einen Primärschlüssel in MySQL, wenn eine Autoinkrementierungsspalte vorhanden ist?
Primärschlüssel in MySQL löschen
Problembeschreibung:
Ein Benutzer stößt auf einen Fehler, wenn Versuch, Primärschlüssel aus zwei Spalten in einer MySQL-Tabelle, user_customer_permission, zu entfernen. Beim Ausgeben des Befehls „Alter Table User_Customer_Permission Drop Primary Key;“ erhalten sie die Fehlermeldung „Falsche Tabellendefinition; es kann nur eine Auto-Spalte geben und diese muss als Schlüssel definiert werden.“
Antwort :
MySQL erfordert, dass eine Autoinkrementierungsspalte (wie in diesem Fall die ID-Spalte) Teil eines Index ist. Um das Problem zu beheben, muss der Benutzer zunächst die Autoincrement-Eigenschaft aus der ID-Spalte entfernen, bevor er den Primärschlüssel löscht.
Die folgenden Schritte skizzieren die Lösung:
Autoincrement-Eigenschaft entfernen:
ALTER TABLE user_customer_permission MODIFY id INT NOT NULL;
Primär löschen Schlüssel:
ALTER TABLE user_customer_permission DROP PRIMARY KEY;
Zusätzliche Überlegungen:
Da der Benutzer einen zusammengesetzten Primärschlüssel angegeben hat, der alle drei Spalten umfasst, id Es ist nicht garantiert, dass es eindeutig ist. Wenn es jedoch eindeutig ist, kann der folgende Befehl verwendet werden, um die ID als Primärschlüssel und Autoinkrementierungsspalte wiederherzustellen:
ALTER TABLE user_customer_permission MODIFY id INT NOT NULL PRIMARY KEY AUTO_INCREMENT;
Das obige ist der detaillierte Inhalt vonWie lösche ich einen Primärschlüssel in MySQL, wenn eine Autoinkrementierungsspalte vorhanden ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!