首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对主键包含2列的表的外键引用

对主键包含2列的表的外键引用
EN

Stack Overflow用户
提问于 2012-05-11 21:58:27
回答 2查看 882关注 0票数 2

在SQL中,您是否可以将一个表中的外键设置为另一个主键,其中2列主键仅引用其中一个主键列Oracle?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-11 22:54:39

外键必须引用整个主键或其他唯一约束。如果父表需要两列来唯一标识一条记录,那么它的从属表必须在其结构中同时包含这两列。

通过使用代理或合成主键(通常是用序列生成的)来避免复合外键的扩散是很常见的。外键引用单列代理键。

复合业务键仍应使用唯一约束在父表中强制执行。

有时,复合主键包含的列也是唯一的。例如,这是一种强制执行圆弧的方式(超类型和子类型关系)。因此,PERSONS表将(PERSON_ID)作为主键,(PERSON_ID,PERSON_TYPE)作为唯一键。在这种情况下,依赖表可能引用(PERSON_ID)或(PERSON_ID,PERSON_TYPE),这取决于特定的关系。

票数 1
EN

Stack Overflow用户

发布于 2012-05-11 22:07:06

PK-FK关系规则要求列的个数必须相等,数据类型也必须相同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10552821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档