MySQL create table: error 1005 errno: 150 "Foreign key constraint is incorrectly formed"
At times the best way to overcome an error within your InnoDB table is to check the InnoDB table status by using this command.
   SHOW ENGINE INNODB STATUS;

This will enlighten you on what you are doing wrong.