このメッセージがあまり親切でなく、原因には色々な可能性が考えられる。 あり得る原因たち 対象カラムにINDEXが張られていない(対象がPRIMARY KEYでない場合) 参照先、参照元のどちらかがInnoDBでない 参照元のカラムと参照先のカラムの型が異なる 参照先カラムにデフォルト値をセットしている ON DELETE SET NULLを指定しているが参照先がNOT NULL その他何らかの構文エラーがある (なぜかSyntax Errorではなく、Can’t create tableが出る) 今回は3、片方のみにunsignedを指定していたためのエラーでした。 参考 MySQLでCan’t create table(errno: 150) http://fizsoft.net/archives/300