ドロップされたテーブルを再作成する場合は、それを参照する外部キー制約に準拠する定義が必要です。前述のように、正しい列名とタイプが必要であり、参照されるキーにインデックスが付いている必要があります。これらが満たされない場合、MySQLはエラー番号1005を返し、エラーメッセージでerror150を参照します。
私の疑惑 foo
を作成しなかったためです InnoDBとして、他のすべてが問題ないように見えます。
編集:同じページから-
両方のテーブルはInnoDBテーブルである必要があり、TEMPORARYテーブルであってはなりません。