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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在删除级联与2个不同的表相关的知识,希望对你有一定的参考价值。

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

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

ER Diagram

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

答案

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

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

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

以上是关于在删除级联与2个不同的表的主要内容,如果未能解决你的问题,请参考以下文章

DRF4级联与外键字段

Django,级联移动到单独的表而不是级联删除

如何在有外键关系的表中删除数据

如何在代码中首先在 TPT(每种类型的表)继承中启用级联删除?

多表级联删除表数据特别慢

在一个查询 MYSQL 上从 2 个不同的表中计算 2 个不同的东西