为复合主键的一部分创建外键

时间:2014-07-24 01:59:57

标签: foreign-keys composite-key

我正在尝试使用复合PK创建一个FK,这里是我想要实现的细节。

Table -A
Column A1
Column A2
Primary key (A1, A2).

Table -B
Column B1 Primary key.
Column B2
FK (B2) References A(A1).

当我尝试这样做时,我遇到了一些错误。

问题: 首先是这可能吗?如果是,那么我该如何创建呢?

1 个答案:

答案 0 :(得分:0)

当某些列的子行值始终显示为某些唯一(PRIMARY KEY或UNIQUE NON NULL)列的子行值时,将声明外键。 A(A1)并不是唯一的,所以你不能想要一个FK。你想要的桌面约束是什么?如果A(A1)是唯一的,则声明它。如果B(B2)总是在该列中,则声明FK B(B2)引用A(A1)。如果A(A1)不是唯一的并且您希望B(B2)在其中,那么您必须通过其他方式(如触发器)进行约束。或许你应该有一个不同的架构。