如何在mysql触发器中创建一行以满足FK约束

时间:2015-11-12 16:16:19

标签: mysql

在我的数据库中有两个表,让我们说objectobject_scoreobject有一个object_score_id,该列是object_score.id的外键。我们以这种方式设置关系,因为直观地,object拥有其得分。

我们遇到的问题是,我们想要在插入object_score时编写触发器以自动创建相应的object。但是,我们没有关于object_score的任何识别信息来唯一标识它,因此如果我们在BEFORE INSERT ON触发器中创建行,我们无法添加其idobject中的外键列。

除了翻转关系以便object_score拥有object之外,还有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

通常在父子关系中,外键将存在于子表中。在这种情况下,object是父对象,object_score是子对象。因此,所有object_scores都使用object_id标记(拥有)。然后,您可以强制所有object_score都有一个对象,并且没有孤儿。

在父表中使用外键通常表示一个查找表,其中有一个可以跨行共享的属性。例如,object_color,并且该对象具有color_id。