MySQL の外部キー制約エラー: 根本原因と解決策
エラー「エラー 1215 (HY000): 外部キー制約を追加できません」これは、MySQL の 2 つのテーブル間の外部キー参照を定義するときに発生します。この問題に対処するには、参照フィールドと外部キー フィールドの両方で特定の基準が満たされていることを確認することが重要です。
エンジンの互換性:
両方のフィールドは、次のテーブルに存在する必要があります。同じエンジン、通常は InnoDB。
データ型と長さ:
フィールドのデータ型と長さは同一である必要があります。たとえば、参照されるフィールドが VARCHAR(20) の場合、外部キー フィールドも VARCHAR(20) である必要があります。
Collation:
フィールドの照合順序は一致する必要があります。同様に、たとえば、utf8.
一意性:
親テーブルの参照フィールドは一意であるか、子テーブルの各行が必ず一致するように PRIMARY KEY として宣言する必要があります。有効な参照。
NULL 制約:
外部キー フィールドで NULL 値が許可される場合、参照されるフィールドでも NULL 値が許可される必要があります。
排他的実行:
特定のシナリオでは、他の同時クエリを行わずに外部キー作成ステートメントを排他的に実行する必要がある場合があります。これは、トランザクションを開始することで実現できます。たとえば、
<code class="sql">BEGIN; CREATE TABLE course ( ... ); COMMIT;</code>
追加の手段:
外部キー制約を確実に作成するには、これらの条件がすべて満たされていることを確認することが不可欠であることを覚えておいてください。
以上が以下にいくつかのタイトルのオプションを示します。それぞれが記事の異なる側面を強調しています。 短くて一般的な: * MySQL に外部キー制約を追加できないのはなぜですか? * 外部キー制約 E のトラブルシューティングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。