MySQL erlaubt das Löschen von Fremdschlüsseln nicht, da nach dem Erstellen eines Fremdschlüssels automatisch ein Index mit demselben Namen erstellt wird. Wenn der Fremdschlüssel gelöscht wird, wird MySQL nicht gelöscht Wird davon ausgegangen, dass der Fremdschlüssel noch vorhanden ist, zeigt MySQL weiterhin die Fremdschlüssel im Befehl „Show Keys“ an.
Manchmal können wir MySQL-Fremdschlüssel nicht löschen. Was sollen wir tun? Im Folgenden werde ich Ihnen vorstellen, warum MySQL das Löschen von Fremdschlüsseln nicht zulässt, und ich hoffe, dass es Freunden, die es brauchen, hilfreich sein wird!
1. Nachdem MYSQL einen Fremdschlüssel erstellt hat, wird automatisch ein Index mit demselben Namen erstellt
2. Wenn der Index mit demselben Namen nicht gelöscht wurde , MYSQL geht davon aus, dass der Fremdschlüssel immer noch vorhanden ist. MYSQL zeigt weiterhin Fremdschlüssel im Befehl „Show Keys“ an. Wenn Sie die Tabelle löschen, meldet MYSQL weiterhin „Eine Fremdschlüsseleinschränkung schlägt fehl“, d. h. der Fremdschlüssel Einschränkung schlägt fehl
3. Wenn Sie den Fremdschlüssel, den Sie in Show Keys sehen, erneut löschen möchten, wird tatsächlich ein 1025-Fehler gemeldet. Dies ist in der Tat, wie im Internet gesagt, der Name des Fremdschlüssels ist falsch. Denn tatsächlich ist der Fremdschlüssel nicht mehr vorhanden. Aber egal, Sie können erkennen, dass Fremdschlüssel noch vorhanden sind, indem Sie Schlüssel anzeigen oder andere Tabellenoperationen durchführen, was Ihre Augen in die Irre führt.
Lösung:
1. Löschen Sie zuerst den Index
mysql> show index from tableName; mysql> alter table tableName drop index FKxxxxxxxxxxxxxx;
2. Löschen Sie den Fremdschlüssel erneut
mysql> show keys from tableName; mysql> alter table tableName drop foreign key FKxxxxxxxxxxxxxx;
Wenn das nicht funktioniert, können Sie versuchen, zuerst den Fremdschlüssel zu löschen und dann den Index zu löschen oder die Verbindung erneut herzustellen zur Datenbank.
Verwandte Empfehlungen: „MySQL-Tutorial“
Das obige ist der detaillierte Inhalt vonWarum erlaubt mir MySQL nicht, Fremdschlüssel zu löschen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!