我试图在我的桌子上添加约束,但它不起作用。我得到了:
#1452 - Cannot add or update a child row: a foreign key constraint fails
在父子列之间存在属性不匹配之前,我遇到过此问题,但这次错误似乎是其他问题,我无法弄清楚原因。
我尝试的代码是:
ALTER TABLE ts3_keys
ADD CONSTRAINT `FK_user_id` FOREIGN KEY (`member_id`) REFERENCES `ts3_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
id
是ts3_users
表的主键,我想成为member_id
中ts3_keys
的外键。
以下是显示我的2个表格的屏幕截图:http://i.imgur.com/Z0CjsKw.png
我在这里缺少什么?感谢。
编辑:我应该补充说两个表都在运行InnoDB
答案 0 :(得分:1)
由于您的表中没有任何数据,因此您不必担心数据已损坏。请运行以下内容:
SET FOREIGN_KEY_CHECKS = 0;
ALTER TABLE ts3_keys
ADD CONSTRAINT `FK_user_id` FOREIGN KEY (`member_id`) REFERENCES `ts3_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
SET FOREIGN_KEY_CHECKS = 1;
从您的屏幕截图来看,它看起来像是在PHPMYADMIN中运行。您应该能够一次性将所有上述代码剪切并粘贴到SQL行中。