如果我有一个复杂的主键,是否可以只为其中的一列创建外键?

时间:2011-08-19 12:59:38

标签: mysql database foreign-keys primary-key

我有这个:

ID1 INTEGER PRI
ID2 INTEGER PRI
NAME VARCHAR

现在我需要:

ID1_REF INTEGER REFERENCE TO ID1
DESCRIPTION VARCHAR

因此,一列指的是一列主键,而不是两列。它甚至可以在关系数据库中使用吗?

2 个答案:

答案 0 :(得分:1)

不,你不能。 外键必须引用主键或另一个超级键(一组属性/列,用于唯一标识该表中的行,无论是否是实际声明的主键)。 值得一读Wikipedia article

答案 1 :(得分:0)

从技术上讲,你可以做任何你想做的事。但从理论上讲,这打破了主键和外键的主要概念。实际上这只是一个术语问题。我不确定您的示例中的密钥是否可以称为外键。也许我们可以把它称为部分外键或其他东西。