1215: Cannot add foreign key constraint(外部キー制約を追加できない)
MySQL意味
定義しようとしている外部キー制約を作成できない。MySQL は制約を追加できない。
原因
子列と参照先列の間でのデータ型/長さ/符号 (signed-unsigned) または文字セット/照合順序の不一致、参照先列に適切なインデックス/PRIMARY KEY がない、テーブルのストレージエンジンが異なる (一方が MyISAM)、または参照先テーブルがまだ存在しない。
対処方法
両側の列の型が完全に同一であることを確認する (例: 両方とも INT UNSIGNED)。参照先列にインデックスがあることを確認する (通常は PRIMARY KEY または UNIQUE)。両方のテーブルが InnoDB であることを確認する。文字列キーには同じ charset/collation を使う。詳細: SHOW ENGINE INNODB STATUS (LATEST FOREIGN KEY ERROR)。
同じデータベースの他の項目
- 2003Can't connect to MySQL server (TCP/IP)(MySQL サーバーに接続できない)
- 2006MySQL server has gone away(MySQL サーバーとの接続が失われた)
- 1114The table is full(テーブルが満杯)
- 1451Cannot delete or update a parent row: a foreign key constraint fails(親行を削除/更新できない: 外部キー制約違反)
- 1452Cannot add or update a child row: a foreign key constraint fails(子行を追加/更新できない: 外部キー制約違反)
- 1366Incorrect string/integer value for column(列に対する文字列/整数値が不正)
- 1044Access denied for user to database(データベースへのアクセス拒否)