MySQLで外部キーの追加に失敗する原因
MySQL外来キー追加失敗の考えられる原因:
- 外部キー制約によって参照されるテーブルと参照するテーブルの列の型が一致しません。データ型、桁数、精度など、型に関係する値が一致する必要があります。
- 参照先の外部キー列はインデックスされていません: 外部キー制約を追加すると自動的にインデックスが作成されますが、参照先の外部キー列がインデックスを作成していない場合、外部キーの追加は失敗します。
- 参照テーブルの外部キー列に重複値が存在する場合、外部キー制約の追加は失敗します。外部キー列は一意である必要があります。
- 参照テーブル内に追加しようとする外部キーの値が存在しない場合、外部キーの追加は失敗します。
- 参照しているテーブルの外列キー列に NULL 値が含まれており、この外列キー列は NULL 値を許可しません。参照するテーブルから NULL 値を削除してください。
- 循環参照が存在します: A テーブルの外キーが B テーブルの主キーを参照していて、B テーブルの外キーが A テーブルの主キーを参照しているとき、外キーの追加は失敗します。
- 使用するストレージエンジンは外部キー制約をサポートしていません: MySQL のストレージエンジンの一部 (MyISAM など) は外部キー制約をサポートしていないため、これらのストレージエンジンを使用すると外部キーを追加できません。
ご注意:上記の原因は考えられる原因の一部にすぎず、具体的な失敗原因は具体的なエラーメッセージにより判断する必要があります。