我的数据库中具有以下表关系:
Parent
/ \
Child1 Child2
\ /
GrandChild
我正在尝试创建FK关系,以便父表的删除级联到子表和孙表。对于任何一个特定的Granchild,它将要么成为一个或另一个子表的父项,但决不会同时存在。
当我尝试在FK关系中添加DELETE CASCADE时,将它们添加到两个孩子的一个“边”中就可以了(Parent-Child1-GrandChild对于“级联删除”是很好的)。但是,一旦我在关系的Child2“边”上添加了Cascade Delete,SQL就会告诉我FK将导致多个级联路径。我的印象是,仅当多个FK表示SAME表时,才应用多个级联路径。在这种情况下,为什么会出现多个级联路径错误?
PS此时的表关系将很难更改,因此,简单地告诉我更改表结构将无济于事,谢谢。
该消息表示,如果删除父记录,则有两条路径可导致所有可删除的GrandChild记录。
修复:删除FK中的ON DELETE CASCADE选项,并为ChildX表创建INSTEAD OF DELETE触发器,删除所有子记录,然后childX记录自己。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。