このあいまいなエラーメッセージが表示されたら、
を実行してより具体的なエラーを見つけることができます。SHOW ENGINE INNODB STATUS;
最も一般的な理由は、外部キーを作成するときに、参照フィールドと外部キーフィールドの両方が一致する必要があることです。
- エンジン 同じである必要があります例: InnoDB
- データ型 同じで、同じ長さである必要があります。
例: VARCHAR(20)またはINT(10)UNSIGNED - 照合 同じである必要があります。 例: utf8
- ユニーク -外部キーは、一意のフィールドを参照する必要があります(通常は秘密) 参照表にあります。
このエラーのもう1つの原因は、次のとおりです。
一部の列はNOTNULLとして定義されていますが、SETNULL条件を定義しました。