在删除级联与2个不同的表

时间:2018-06-01 04:02:55

标签: sql foreign-keys cascade

我有以下情况,我想要做的是,如果我从DashboardKpi或DashboardGrid中删除一行,也应该删除ComponentProperty上的相应记录。

这可能吗?到目前为止,我只能反过来做,如果删除ComponentProperty,相应的DashboardKpi或DashboardGrid会被删除,但这绝对不是我想要的。

ER Diagram

有关我该怎么做的任何建议?

1 个答案:

答案 0 :(得分:1)

删除级联不会帮助你。正如您在删除行级联时提到的那样,它会删除引用原始删除行的其他表中的所有其他行,然后删除原始行。

逻辑的原因是ComponentProperty中的行可以没有DashboardKpi或DashboardGrid,但DashboardKpi或DashboardGrid中的行(如果它们引用ComponentProperty)不能导致它们依赖于ComponentProperty。

您可以根据您的DBMS以不同方式解决您的问题。大多数人的共同点是使用程序或触发器。如果您使用Postgresql,那么您也可以使用ON DELETE规则。