ホームページ >データベース >mysql チュートリアル >MySQL エラー 150 および 1005: 外部キー関係を作成できないのはなぜですか?
MySql 外部キー エラー 150: 不可解な謎
外部キー関係を持つ "foo" テーブルと "bar" テーブルを作成しようとしたとき、エラー 150 を参照してエラー 1005 (HY000) が発生します。このエラーはイライラする可能性があり、そのままにしておきます。
外部キー制約に関する MySQL ドキュメントによると、外部キー参照を持つ削除されたテーブルを再作成するときに問題が発生します。テーブルは、列名と型、および参照されるキーのインデックスが一致することにより、外部キー制約に準拠する必要があります。これらの条件が満たされない場合、MySQL はエラー 1005 を返し、その根底にあるエラーは 150 です。
エラーの原因は、「foo」テーブルが InnoDB テーブルとして定義されていないことが原因である可能性があります。 MySQL ドキュメントには、両方のテーブルが InnoDB テーブルであり、非一時的である必要があると明示的に記載されています。
「foo」テーブル作成クエリを変更して InnoDB エンジンを指定することで、次のようになります。
mysql> CREATE TABLE foo(id INT PRIMARY KEY) ENGINE=InnoDB;
次のようになります。外部キー制約を使用して「bar」テーブルを正常に作成でき、エラー 150 が解決されました。
以上がMySQL エラー 150 および 1005: 外部キー関係を作成できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。