我有两个表,table1是一个列ID的父表,table2是一个列IDFromTable1(不是实际的名称),当我把一个FK IDFromTable1到ID在table1,我得到的错误外键约束是不正确形成的错误。我想删除表2记录,如果表1记录被删除。谢谢你的帮助

ALTER TABLE `table2`  
   ADD CONSTRAINT `FK1` 
      FOREIGN KEY (`IDFromTable1`) REFERENCES `table1` (`ID`) 
      ON UPDATE CASCADE 
      ON DELETE CASCADE;

如果还需要其他信息,请告诉我。我是mysql的新手


当前回答

如果你的表是Myisum,新表是InoDb,你是Note Foreign 您必须将MyIsum表更改为InoDb

其他回答

确保列是相同的(相同类型),如果引用列不是primary_key,确保它是INDEXED。

我在这里遗漏的另一个解决方案是,在创建约束的表中,引用表的每个主键都应该有一个带有外键的条目。

如果一切正常,只需添加->unsigned();在外键的末尾。

如果不行,请检查两个字段的数据类型。它们必须是一样的。

Mysql错误文本没有那么多的帮助,在我的情况下,列有“不空”约束,所以“删除设置空”是不允许的

我为这个损失了好几个小时!

一个表中的PK是utf8,另一个表中的PK是utf8_unicode_ci!