我有一个表称为Couple
它具有以下字段CoupleId, HusbandId , WifeId , StartDate , EndDate
插入,更新触发器
上表中包含关于夫妇的信息,该CoupleId
是一个主键
HusbandId
和WifeId
外键的形成另一个表命名为Person
StartDate
和EndDate
代表发生在男性与HusbandId
之间的婚姻的开始/结束日期和fe男性与我的问题WifeId
我有W¯¯女性不能在同一时间“同步婚姻”
结婚,两个或两个以上的男性的条件,我有以下查询
SELECT
DISTINCT A.WifeID
FROM
Couple A
INNER JOIN Couple B
ON A.WifeID = B.WifeID
AND A.HusbandID <> B.HusbandID
AND A.StartDate < B.EndDate
AND A.EndDate > B.StartDate;
返回任何有同步婚姻的女性“同时结婚到两个或两个以上的男性”
我想写某人想要插入或更新时触发的触发器couple
表,我希望这个触发器允许修改,只要它没有任何错误信息就可以了(例如,如果有人在夫妇桌上插入一行,并且这一行使#4的妻子与两个人同时结婚,此插入一定不能完成,因为它在表格中产生了错误的信息)
任何人都可以在这一点帮助我吗?
不应该以某种方式考虑startDate和endDate吗?一对夫妇可能会离婚并结婚不止一次。 –
@a_horse_with_no_name - 是的,我注意到了。 OP没有提到这张桌子应该如何处理这个问题。我认为最好在这种情况下将其转移到新表中。那么如何将离婚或结婚的新“列表”状态添加到组合键中?但他的婚姻和离婚不会合作一次以上。 –
@MahmoudGamal谢谢,但我想通过触发器来完成它,因为这是HomeWork中的一个请求:) ...我搜索了很多关于触发器,但我没有找到任何有用的教程:( –