Drop a Foreign Key in MySQL
Fiddling with the removal of a foreign key in MySQL can drive an engineer mad. In order to remove the key you must use the name of the constraint in the drop statement - not the name of the index.
The show command lists out the DDL for the table, including the created foreign keys:
mysql> show create table t1;
...
CONSTRAINT `MY_TABLE_FK05` FOREIGN KEY (`FLIGHT_ID`,
`USER_ID`) REFERENCES `MY_OTHER_TABLE` (`FLIGHT_ID`,
`USER_ID`)
You can then issue the drop command with the name of the constraint (yeah, not really intuitive)
mysql> alter table t1 drop foreign key MY_TABLE_FK05;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0