Di solito ricevi questo errore se le tue tabelle utilizzano il motore InnoDB. In tal caso dovresti eliminare la chiave esterna, quindi modificare la tabella e rilasciare la colonna.
Ma la parte difficile è che non puoi rilasciare la chiave esterna usando il nome della colonna, ma invece dovresti trovare il nome usato per indicizzarla. Per trovarlo, emetti quanto segue seleziona:
MOSTRA CREA TABELLA regione;
Questo dovrebbe mostrarti il nome dell'indice, qualcosa del genere:
VINCOLO region_ibfk_1
FOREIGNKEY (country_id
) RIFERIMENTIcountry
(id
) SU CANCELLA NO AZIONE SU AGGIORNAMENTO NESSUNA AZIONE
Ora emetti semplicemente un:
altera la regione della tabella rilascia la chiave esternaregion_ibfk_1
;
E infine un:
altera la regione della tabella drop columncountry_id;
E sei a posto!