MySQLの外部キー制約エラーの詳細の確認方法
結論から言うと他のサイトで見るような外部キーのややこしい制約にはまったわけではなく、単にテーブル名の不一致だった。
が、基本的にMySQLで外部エラーがでたときは以下のような簡素なメッセージしか出してくれないので原因が判別しづらい。
ERROR 1005 (HY000): Can't create table 'hoge_db_name.huga_table_namer' (errno: 150)
そこで、以下のコマンドで最新の外部キー制約エラーの詳細を確認することができる。
SHOW ENGINE INNODB STATUS\G;
これを実行するといろいろな項目がずらっとでてくるが、外部キー制約エラーの詳細は
LATEST FOREIGN KEY ERROR
に書かれている。昔は以下のコマンドだったらしいが、新しめのMySQLだとSyntax Errorではじかれるので注意
SHOW INNODB STATUS;
なんで最初っから詳細メッセージ出してくれないんだろうなぁ。