我有3张桌子。一个基表,称之为表A,两个表引用表A,将它们称为表X和表Y.X和Y都有一个引用表A的外键约束.X和Y的外键也是它们自己的主键。
我想知道是否可以添加一个约束,只允许其中一个表包含一个引用表A的recrod。因此,如果X有一个引用A的记录,那么Y不能有一个如果Y有一个引用A的记录,则X不能有一个。
这可能吗?
谢谢,
答案 0 :(得分:7)
使用UDF检查约束(这是Oded的答案)不能很好地扩展并且并发性差。见这些:
所以:
这是超级键或子类型方法
答案 1 :(得分:1)
是的,可以使用CHECK constraints。
除了正常的外键约束外,您还需要在两个引用表上添加CHECK constraint,以确保在其他引用表中不使用外键。