外部キーの設定でError:1215

あるテーブルにカラムとそのカラムに対応する外部キー制約を追加することになった。

BEGIN;

ALTER TABLE テーブルA ADD id int(10) AFTER quantity; ALTER TABLE テーブルA ADD CONSTRAINT テーブルA_ibfk_1 FOREIGN KEY (id) REFERENCES テーブルB (id) ON DELETE CASCADE ON UPDATE CASCADE;

COMMIT;

よく見る形だと思うが、これでエラーが吐き出されてしまった。

Error Code: 1215. Cannot add foreign key constraint

どうやらINDEXも張らないと外部キーが設定できないらしい……(使用しているのはMySQL5.6(InnoDB))

INDEXを張ることで外部キーが設定できるようになった。