繁体   English   中英

无法将外键添加到现有表

[英]Can't add foreign key to an existing table

我想将外键添加到现有表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结构。 在此处输入图片说明

问题表db_questions结构。 在此处输入图片说明

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

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

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

您不能向该表添加foreign key ,因为您必须首先检查primary key表是否具有与foreign key表相同的record exists 根据primary column值和foreign key列值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM