我有两个表,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

其他回答

显示此错误的另一个可能原因。我创建表的顺序是错误的。我试图从一个尚未创建的表中引用一个键。

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

或者您可以使用DBDesigner4,它具有图形界面来创建数据库并使用FK链接它们。右键单击您的表并选择“复制表SQL创建”,这将创建代码。

检查是否以正确的大小写指定了表名(如果数据库中的表名是区分大小写的)。就我而言,我必须改变

 CONSTRAINT `FK_PURCHASE_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`) ON UPDATE CASCADE ON DELETE CASCADE

to

 CONSTRAINT `FK_PURCHASE_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `CUSTOMER` (`id`) ON UPDATE CASCADE ON DELETE CASCADE

注意客户变更为客户。

检查表格引擎,两个表格必须是相同的引擎,这对我帮助很大。