One of MySQL’s biggest annoyances is the lack of descriptive error messages. Often when dropping a table, index, foreign key you get a cryptic “errno 150 or errno152” error message.
Well, now when you come across those simply go to the command line and type:
show engine innodb status;
Scroll up a ways and see a very helpful message about exactly which other foreign key or index is causing the blockage! Why can’t MySQL put this information into error message to begin with??