我有两个表,table1
是具有列ID
的父表,table2
具有列IDFromTable1
(而不是实际名称)。当我将IDFromTable1
上的FK放到table1
中的ID
时,我得到错误Foreign key constraint is incorrectly formed error
。如果table1
记录被删除,我想删除表2记录。谢谢你的帮助
ALTER TABLE `table2`
ADD CONSTRAINT `FK1`
FOREIGN KEY (`IDFromTable1`) REFERENCES `table1` (`ID`)
ON UPDATE CASCADE
ON DELETE CASCADE;
如果需要任何其他信息,请告诉我。我是mysql新手
发布于 2012-06-19 09:15:33
我在使用HeidiSQL时也遇到了同样的问题。你收到的错误是非常隐秘的。我的问题最终是外键列和引用列的类型或长度不同。
外键列是SMALLINT(5) UNSIGNED
,被引用的列是INT(10) UNSIGNED
。一旦我将它们设置为完全相同的类型,外键创建就可以完美地工作了。
发布于 2015-12-15 02:37:47
当使用MyISAM
引擎创建父表时,我也遇到了同样的问题。这是一个愚蠢的错误,我改正了:
ALTER TABLE parent_table ENGINE=InnoDB;
发布于 2016-06-09 16:19:32
确保列相同(类型相同),如果引用列不是primary_key
,请确保它是INDEXED
。
https://stackoverflow.com/questions/8434518
复制相似问题