You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对关联recipe和ingredient表的junction关联表进行插入操作

关联表插入数据的两种实现方式

方式1:直接手动插入ID(最常用)

如果你已经明确知道要关联的recipe_id和ingredient_id的值,直接写简单INSERT语句就可以,这是最常用也最高效的方式。
示例:要给ID为2的Pizza食谱,关联ID为2的三文鱼食材,语句如下:

INSERT INTO 你的关联表名 (recipe_id, ingredient_id) VALUES (2, 2);

适合场景:前端提交数据时已经选中了对应的食谱、食材,后端能直接拿到两个ID的情况。

方式2:通过关联父表自动查询ID插入

如果你不知道具体的ID值,只知道食谱和食材的名称,不需要手动先查父表再插,可以用子查询的方式一步完成插入,避免手动查ID出错。
示例:要给名为Fish的食谱,关联名为Tomato sauce的食材,语句如下:

INSERT INTO 你的关联表名 (recipe_id, ingredient_id)
SELECT r.recipe_id, i.ingredient_id
FROM recipe r
CROSS JOIN ingredient i
WHERE r.name = 'Fish' AND i.name = 'Tomato sauce';

适合场景:只有业务名称、没有主键ID的批量插入,或者脚本跑数的场景。

注意事项

  • 建议给关联表的recipe_id和ingredient_id联合加唯一约束:UNIQUE (recipe_id, ingredient_id),避免重复插入相同的关联关系产生冗余数据。
  • 建议给关联表加外键约束,确保插入的recipe_id、ingredient_id在父表中真实存在,避免产生无效关联。

内容的提问来源于stack exchange,提问作者zupus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 07:36:00