我正在尝试同时向我的数据库插入两条记录。一个用主键,另一个用外键。但是,当我尝试实现这个时,我收到以下错误:
Cannot add or update a child row: a foreign key constraint fails ....(database details).
我已使用此查询创建外键:
ALTER TABLE `notes` ADD CONSTRAINT `notes_author_fk`
FOREIGN KEY (`authorid`) REFERENCES `audiofeed`.`author`(`authorid`) ON DELETE NO ACTION ON UPDATE CASCADE;
错误陈述指向:
$query1 = "INSERT INTO notes(notename,categoryname,file,authorname)";
$query1 .= "VALUES ('$Trackname','$category','$name','$author')";
答案 0 :(得分:0)
如果错误确实发生在您发布的insert
语句中,我注意到您没有为authorid
列插入任何值,该列是已定义外键的列
通常,这应该没问题,因为它应该只是插入NULL
,这不会违反外键约束。
但是,如果authorid
表中的notes
列具有默认值规范,则可能是在尝试插入在author
表中找不到的无效默认值,从而给你错误。
您可能需要验证authorid
列的定义方式,并根据需要进行调整。
或者,请务必在authorid
声明中为insert
设置合适的值。