MySQL で外部キー制約を作成しようとすると、問題が発生する可能性があります。このようなエラーの 1 つはエラー 150 で、外部キー定義と参照されるテーブルの間に不一致がある場合に発生します。
エラー メッセージ:
ERROR 1005 (HY000): Can't create table './test/bar.frm' (errno: 150)
外部キーに関する MySQL ドキュメントに記載されているとおり制約があるため、外部キー参照では特定のルールに厳密に従う必要があります。重要な要件の 1 つは、参照テーブルと参照テーブルの両方が InnoDB テーブルである必要があることです。
Both tables must be InnoDB tables and they must not be TEMPORARY tables.
このエラーを解決するには、参照テーブル (バー) と参照テーブルの両方が InnoDB テーブルであることを確認してください。参照テーブル (foo) は InnoDB テーブルとして定義されます。そうでない場合は、InnoDB エンジンを使用するように変更します。
ALTER TABLE bar ENGINE=InnoDB; ALTER TABLE foo ENGINE=InnoDB;
この変更を行った後、2 つのテーブル間の外部キー制約を再作成してみます。問題が解決しない場合は、MySQL ドキュメントを再度参照するか、関連フォーラムまたは MySQL 専門家に支援を求めてください。
以上がMySQL エラー 150: 外部キーの不一致を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。