De oplossing die hier door Chris White wordt beschreven werkte voor mij.
Het hoofdprobleem is dat MySQL zowel een index als een externe sleutel maakt. Beide moeten worden verwijderd (eerst de externe sleutel in tegenstelling tot wat Chris zei).
-
toon tabel aanmaken table_name;
SHOW CREATE TABLE `table_name`: | table_name | CREATE TABLE `table_name` ( `id` int(20) unsigned NOT NULL auto_increment, `key_column` smallint(5) unsigned default '1', KEY `column_tablein_26440ee6` (`key_column`), <--- shows key name CONSTRAINT `table_name_ibfk_1` FOREIGN KEY (`key_column`) REFERENCES <--- shows foreign key constraint name `second_table` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
-
Verwijder de externe sleutelbeperking:
ALTER TABLE table_name DROP FOREIGN KEY `table_name_ibfk_1`;
-
Verwijder de sleutel
ALTER TABLE table_name DROP KEY `column_tablein_26440ee6`;
Dat deed het voor mij.