我有两个表:外键相同的主键
用户
id | username
--------------
1 | James
2 | John
3 | Jack
4 | Jim
5 | Jane
6 | Jessica
晚辈
senior_id | junior_id
-----------------------
1 | 4
1 | 6
2 | 3
4 | 5
无论是senior_id
和junior_id
参考users
表id
列。
如何设定,让一个)可以保证两个senior_id
和junior_id
在users
存在和b)delete
从users
将级联和juniors
删除删除ID的任何实例是否是一个senior_id
或junior_id
?即在上面的例子中删除Jim会自动删除从后辈的第一个和最后一个记录。
我试着用两个单独的约束来做到这一点。但是如果我在两个约束条件下设置级联,我会得到'可能导致周期或多个级联路径'的错误。
如果我只在一个约束上设置它,那么删除将失败(在像Jim这样的情况下),因为它只能级联到其中一列,从而违反约束条件。
我必须要能够做到这一点的SQL Server 2005年
谢谢,我明白你说的表设计。不幸的是,我正在处理多对多的关系,即在这种情况下,初级可以有一个以上的老年人。所以将其包括在用户表中不会在这里工作。 – IamNaN
哦!它不会在许多关系中工作。然后创建2触发器是最佳选择。 – KumarHarsh