无法添加或更新子行:外键约束失败


Cannot add or update a child row: a foreign key constraint fails

谁能帮我这个数据库错误,我插入的数据表名为

subjectdetails(
    subjectid int primarykey,
    subject varchar(50),
    semid int //foreign key from the table semester
    departmentid int(11) // foreign key from the table department
)

现在,当我插入一个主题时,它只显示SEMID上的错误,如下面的错误无法添加或更新子行:外键约束失败

(`studentcorner/subjectdetails`, CONSTRAINT `subjectdetails_ibfk_1` FOREIGN KEY 
(`SEMID`) REFERENCES `semester` (`SEMID`) ON DELETE NO ACTION ON UPDATE NO ACTION) 

该错误表明您有一个不能满足的外键约束。具体来说,您正在尝试插入具有无效semid列的subjectdetails项。您为semid使用的值无效,因为该值无法在semester表中找到。我知道这一点,因为你的错误信息说明了很多。

要修复此错误,请确保您尝试为semid列插入的值实际上首先存在于semesters表中。

我建议查阅文档并重新阅读关于使用外键约束的部分。关于你的问题,该页的相关引用是这样的(强调我的):

对于支持外键的存储引擎,如果在父表中没有匹配的候选键值,MySQL将拒绝任何试图在子表中创建外键值的INSERT或UPDATE操作。