数据库(MySQL)错误

时间:2016-08-11 16:00:04

标签: mysql

我正在尝试同时向我的数据库插入两条记录。一个用主键,另一个用外键。但是,当我尝试实现这个时,我收到以下错误:

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')";

1 个答案:

答案 0 :(得分:0)

如果错误确实发生在您发布的insert语句中,我注意到您没有为authorid列插入任何值,该列是已定义外键的列

通常,这应该没问题,因为它应该只是插入NULL,这不会违反外键约束。

但是,如果authorid表中的notes列具有默认值规范,则可能是在尝试插入在author表中找不到的无效默认值,从而给你错误。

您可能需要验证authorid列的定义方式,并根据需要进行调整。

或者,请务必在authorid声明中为insert设置合适的值。