如何解决仅允许两个表之一引用基本表的约束
使用UDF的CHECK约束(这是Oded的回答)不能很好地扩展并且并发性很差。
所以:
- 创建一个新表,例如TableA2XY
- 它具有TableA的PK和带有CHECK的char(1)列,以允许仅X或Y。并且对A的PK也具有唯一约束。
- tableX和tableY具有新的char(1)列,并带有检查以分别仅允许X或Y
- tableX和tableY在两列上的FK均为TableA2XY
这是超键或子类型方法
- 全部基于DRI
- 没有触发器
- CHECK约束中没有具有表访问权限的udfs。
解决方法
我有3张桌子。一个基本表,称为表A,两个引用表A的表,分别称为表X和表Y。X和Y都具有引用表A的外键约束。X和Y的外键也是它们自己的首要的关键。
我想知道是否有可能添加一个仅允许这些表之一包含引用表A的Recrod的约束。因此,如果X具有引用A的记录,则Y不能有一个,并且Y有一个记录,引用A,那么X不能有一个。
这可能吗?
谢谢,
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。