Jas*_*son 4 sql cascading-deletes
我有一个关于级联删除和外键引用的问题:让我们假设下面的表:
ITEMX | ITEMY
------------------ | ------------
ID FKID_ITEMY | ID
1 1 | 1
2 1 |
Run Code Online (Sandbox Code Playgroud)
在FKID_ITEMY上有一个级联删除,这样如果我在ITEMX中删除一行,ITEMY中的相应项将被删除.我的问题是:
ITEMX中删除行ID 1是否会删除ITEMY中的行ID 1?
或者只删除ITEMX中的行ID 1,因为行ID 2仍在ITEMY中引用行ID 1?
换句话说,我希望在没有更多引用时删除ITEMY的行ID 1.级联删除会实现吗?
Bil*_*win 10
你有向后级联删除的概念.
即使您使用级联删除选项声明FKID_ITEMY,如果删除ID = 1的ITEMX也不会发生任何事情.
级联行为会影响在ITEMY中引用的行被删除时会发生什么.如果删除ID = 1的ITEMY,它将删除ITEMX中引用该行的两行.
您在依赖表中声明外键上的级联行为,因为您可能有另一个从属表ITEMZ,并且您希望它的行为不同.例如,如果您尝试删除ITEMY中的行,那么如果ITEMZ中存在任何引用行,则希望取消该行.