无法添加外键

时间:2015-02-17 16:41:59

标签: mysql

我试图在我的桌子上添加约束,但它不起作用。我得到了:

#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;

idts3_users表的主键,我想成为member_idts3_keys的外键。

以下是显示我的2个表格的屏幕截图:http://i.imgur.com/Z0CjsKw.png

我在这里缺少什么?感谢。

编辑:我应该补充说两个表都在运行InnoDB

1 个答案:

答案 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行中。