与MySQL中INSERTion的顺序相关吗?

时间:2015-05-04 17:06:15

标签: mysql database entity-relationship

我有多个表,由多个外键相关,如下例所示:

  • Chefs(id_chef,name,stars) - 其中id_chef是主键。
  • Recipes(id_recipe,name,calories,category) - id_recipe为PK。
  • Ingredients(id_ing,name,type) - id_ing为PK。
  • Contains(id_chef,id_recipe,quantity,unit) - (id_chef,id_recipe)为PK,以及Recipes(id_recipe)Chefs(id_chef)的外键。
  • Autorship(id_chef,id_recipe) - 与之前相同。
  • Users(user_id,name) - user_id为PK。
  • Evaluation(user_id,id_recipe,stars) - (user_id,id_recipe)作为User(user_id)Recipes(id_recipe)的PK和外键。

问题是,现在我想用一个唯一的脚本插入所有这些表中的一些数据,我是否必须按特定顺序执行它并尊重某些条件,或者它是否无关紧要?

感谢。

1 个答案:

答案 0 :(得分:0)

亚历山大,你是正确的,你无法引用尚未存在的东西。但是你的脚本在运行时需要一些计划,因此插入顺序会有所影响。您希望确保在加载引用键之前加载所有引用的表(主键)。

当我计划我的加载脚本时,我会安排我的表,以便首先加载最多引用的表,然后加载所有其他表。

我注意到例如厨师'表被引用两次。在加载“包含”之前,您需要加载该表格。和#Autorship'表。这同样适用于'食谱'表

我可能会首先使用我的脚本来加载Chefs,Autorship和Users,然后加载其余的。

希望它有所帮助。