MySQLで「テーブルを作成できません。エラー番号: 150」というエラーを解決する方法
MySQL エラー: テーブルを作成できません、エラーコード 150 は通常外部キー制約によって引き起こされます。この問題を解決するには、次の手順に従ってください。
- 外部キー制約がテーブルの作成時に使用されているかどうかを確認:テーブル間の関係を調査する
- 外部キー制約の名前を確認する:SHOW CREATE TABLE文を使用してテーブルの構造を表示し、外部キー制約の名前を確認します。
- 外部キー制約のフィールドを確認する: 外部キー制約のフィールドが関連テーブルにあり、データの型と長さが一致していることを確認する。
- 参照整合制約のフィールドはインデックスを張っておくこと 外部制約のフィールドはインデックスを張っておく必要があります。ALTER TABLEを使用してフィールドにインデックスを張ることができます。
- 参照表にプライマリーキー又はユニークキーが存在することを確認する:外部キー制約のフィールドは主表のプライマリーキー又はユニークキーを参照する必要があるため、外部キー制約が参照する表に該当するプライマリーキー又はユニークキーの存在を確認する。
- 外部キー制約を参照先のテーブル内に無効なデータが存在しないようにする。具体的には、外部キーフィールドの値が参照先テーブルの主キーまたはユニークキーに存在する必要がある。
- 外部キー制約で参照するデータが競合する場合は、外部キー制約の要件を満たすよう競合するデータを削除または変更する必要があります。
- 外部キー制約の削除:上記の手順で問題が解決しない場合は、外部キー制約の削除を検討し、もう一度テーブルを作成してみてください。
問題解決前にMySQLのエラーログファイルを見ることで、より詳しいエラー情報を得ることができ、問題の特定や適切な解決策の発見に役立てることができます。