使用foregn键插入数据库

时间:2016-09-09 11:35:24

标签: php mysql

我在将数据插入数据库时​​遇到问题,

无法添加或更新子行:外键约束失败(forum-designtopics,CONSTRAINT topics_ibfk_1 FOREIGN KEY(category_id)参考categoriescat_id))

2 个答案:

答案 0 :(得分:0)

外键关系涉及包含中心数据值的父表,以及具有指向其父级的相同值的子表。 FOREIGN KEY子句在子表中指定。

如果父表中没有匹配的候选键值,它将拒绝任何尝试在子表中创建外键值的INSERT或UPDATE操作。

我认为你的问题是:

1)您在category_id上有一个主键 - 并且您的insert语句没有category_id的值

2)你有一个自引用外键,引用的是referencerer_id,引用了category_id。插入带有referrer_id且非空的记录时。

为了更好地理解,请按照this

答案 1 :(得分:0)

这是因为您的父表"类别"没有您尝试在子表中引用的类别ID"论坛设计"。

确保父表具有您需要在子表中引用的记录。

例如: 表类别有两条记录如下。

cat_id | cat_name
-----------------
1      | catName1
2      | catName2

并插入数据或更新"论坛设计" table如果你写了一个在categories.cat_id中不存在的值,它会导致你所面临的错误。

如果查看上表,在这种情况下,除了1和2之外,使用其他所有值都会导致错误。