table1
は、列を持つ親テーブルでありID
、table2
列がありますIDFromTable1
。
IDFromTable1
にFKを入れると、なぜID
にtable1
なるのですかForeign key constraint is incorrectly formed error
?
table2
(記録が削除された場合は、記録を削除したいと思いますtable1
。)
ALTER TABLE `table2`
ADD CONSTRAINT `FK1`
FOREIGN KEY (`IDFromTable1`) REFERENCES `table1` (`ID`)
ON UPDATE CASCADE
ON DELETE CASCADE;
両方のテーブルのエンジンは InnoDB です。両方の列のタイプは ですchar
。ID
は の主キーですtable1
。
ベストアンサー1
私も同じ不可解なエラーに遭遇しました。私の問題は、外部キー列と参照列の型または長さが同じではなかったことです。
外部キー列はSMALLINT(5) UNSIGNED
参照された列はINT(10) UNSIGNED
両方をまったく同じタイプにすると、外部キーの作成は完璧に機能しました。