Fremdschlüssel in MySQL löschen
Beim Versuch, Tabellen mit Fremdschlüsseleinschränkungen zu ändern, können Benutzer auf Fehler stoßen, die das Entfernen bestimmter Fremdschlüssel verhindern . Dieses Problem tritt auf, wenn der Indexname anstelle des Einschränkungsnamens in der DROP FOREIGN KEY-Anweisung verwendet wird.
Betrachten Sie das folgende Beispiel:
CREATE TABLE location ( locationID INT NOT NULL AUTO_INCREMENT PRIMARY KEY ... ) ENGINE = InnoDB; CREATE TABLE assignment ( assignmentID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, locationID INT NOT NULL, FOREIGN KEY locationIDX (locationID) REFERENCES location (locationID) ... ) ENGINE = InnoDB; CREATE TABLE assignmentStuff ( ... assignmentID INT NOT NULL, FOREIGN KEY assignmentIDX (assignmentID) REFERENCES assignment (assignmentID) ) ENGINE = InnoDB;
So löschen Sie den locationIDX-Fremdschlüssel aus der Zuweisungstabelle , die korrekte Syntax lautet:
ALTER TABLE assignment DROP FOREIGN KEY locationIDXconstraint;
Hinweis: Die locationIDXconstraint muss sein durch den tatsächlichen Einschränkungsnamen ersetzt.
Durch die Angabe des Einschränkungsnamens anstelle des Indexnamens kann die Fremdschlüsseleinschränkung erfolgreich entfernt werden, ohne dass Fehler auftreten.
Das obige ist der detaillierte Inhalt vonWie lösche ich Fremdschlüssel in MySQL ohne Fehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!