无法更新子行

时间:2014-03-21 13:06:09

标签: php mysql

我收到此错误

食物项插入失败无法添加或更新子行:外键约束失败(menu_managerrecipe_ingredient,CONSTRAINT recipe_ingredient_ibfk_1 FOREIGN KEY(recipe_id)REFERENCES {{ 1}}(recipe)ON UPDATE CASCADE)

我正在尝试以一种形式将配方添加到我的数据库中。我希望输入的数据转到3个不同的表格。成分表食谱表和recipe_ingredient表。配方表有一个自动增量id作为主键,而ingredient_id作为配方表中的外键。

我想要成分名称,数据转到成分表以及配方表的名称,课程,说明以及配方表中的ingredient_id

要转到ingredient_recipe表的成分数量和单位,该表引用了ingredient_id和recipe_id。

我收到错误: 食物项目插入失败无法添加或更新子行:外键约束失败(recipe_idmenu_manager,CONSTRAINT recipe_ingredient外键(recipe_ingredient_ibfk_1)参考recipe_idrecipe)ON UPDATE CASCADE)

提前感谢帮助人员

1 个答案:

答案 0 :(得分:0)

除非你发布你的代码,否则很难确切知道发生了什么,所以它可能是一些不同的东西。这是我从您发布的内容中可以看到的内容。 添加配料失败,因为配料记录需要具有表中已有配方的配方ID。 您正在创建新配方,因此您可能还没有配方ID,这可能是问题的来源。 您需要将配方添加到数据库,提交更改,然后检索该记录的自动生成的recipe_id。我认为PHP会因成功提交而返回该主键,但是在您将记录添加到表后,您需要查询它。 获得recipe_id键后,可以将其包含在成分的insert语句中。