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

问题描述 投票:0回答:1

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

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

ER Diagram

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

sql foreign-keys cascade
1个回答
1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.