无法将外键添加到现有表中

时间:2017-03-31 08:58:53

标签: mysql foreign-keys

我想将外键添加到现有表questions中,其中包含1000个不同类别的问题。但是当我试图添加外键mysql抛出错误时如下。

#1452 - Cannot add or update a child row: a foreign key constraint fails ( question_bank .#SQL-af8_1d0 , CONSTRAINT CAT_ID FOREIGN KEY ( CAT_ID ) REFERENCES db_category ( CAT_ID ) ON DELETE NO ACTION ON UPDATE NO ACTION)

类别表db_category结构。 enter image description here

问题表db_questions结构。 enter image description here

2 个答案:

答案 0 :(得分:3)

在添加外键之前,您应该确保它符合实际数据。 错误很简单,questions表上有一些行,cat_id上有错误值

只需删除这些行,或创建新类别。您可以使用以下方法检查有问题的行:

SELECT * FROM questions WHERE cat_id NOT IN (SELECT cat_id from category)

答案 1 :(得分:1)

您无法向该表添加foreign key,因为您必须首先检查primary key表的record exists值是否与foreign key表相同。 根据{{​​1}}值和primary column列值。