微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

仅允许两个表之一引用基本表的约束

如何解决仅允许两个表之一引用基本表的约束

使用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 举报,一经查实,本站将立刻删除。