以下のクエリを実行すると、エラーがスローされます。
alter table `ttis`.`users`
add constraint `FK_Role_ID` FOREIGN KEY (`ROLE_ID`) REFERENCES `roles` (`ROLE_ID`)
エラー:
Error Code : 1005
Can't create table 'ttis.#sql-9c_8a' (errno: 150)
以下のクエリを実行すると、エラーがスローされます。
alter table `ttis`.`users`
add constraint `FK_Role_ID` FOREIGN KEY (`ROLE_ID`) REFERENCES `roles` (`ROLE_ID`)
エラー:
Error Code : 1005
Can't create table 'ttis.#sql-9c_8a' (errno: 150)
この投稿を見てください:13.6.4.4。FOREIGNKEYConstraintsおよび「150」を検索します。それはここに言います:
ドロップされたテーブルを再作成する場合は、それを参照する外部キー制約に準拠する定義が必要です。前述のように、正しい列名とタイプが必要であり、参照されるキーにインデックスが付いている必要があります。これらが満たされない場合、MySQLはエラー番号1005を返し、エラーメッセージでエラー150を参照します。
MySQLがCREATETABLEステートメントからエラー番号1005を報告し、エラーメッセージがエラー150を参照している場合、外部キー制約が正しく形成されていないため、テーブルの作成に失敗しました。同様に、ALTER TABLEが失敗し、それがエラー150を参照している場合、それは、変更されたテーブルに対して外部キー定義が誤って形成されることを意味します。SHOW ENGINE INNODB STATUSを使用して、サーバーでの最新のInnoDB外部キーエラーの詳細な説明を表示できます。