下面的表 DISPLAY_TAB 是一个自引用表,可以包含父选项卡和子选项卡 . 父选项卡可以有多个子选项卡,子选项卡可以属于多个父选项卡 .
我想在主表和关系表 DISPLAY_TAB_GROUPING 之间 Build CASCADE DELETE关系,因此当删除父或子选项卡时 - 关系也会自动删除(只是关系,而不是实际的选项卡记录) . 所以我在 DISPLAY_TAB_GROUPING 上为字段TAB_ID_R_1和TAB_ID_R_2表创建一个FOREIGN KEY约束,引用 DISPLAY_TAB 表中的TAB_ID . 并且它工作正常,当我为其中一个关系添加ON DELETE CASCADE时它工作正常,但是当我为它们尝试它时 - 它会抛出一个错误,这个"May cause cycles or multiple cascade paths" .
如何为两种关系设置ON CASCADE DELETE?我没有看到这会如何导致循环 - 每次删除主表中的记录时,只应删除关系表中的相关记录 .
1 回答
阅读this知识库文章,其中包括以下内容......
要做你想做的事,DISPLAY_TAB_GROUPING表必须出现两次 . 我建议您使用实现删除代码的存储过程 .