谁能帮我这个数据库错误,我插入的数据表名为
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操作。