Microsoft SQL表可以有多个主键吗?

时间:2010-06-23 22:41:46

标签: sql sql-server primary-key

我总是很好奇,但找不到简洁的答案。有什么帮助吗?

4 个答案:

答案 0 :(得分:9)

不能有多个主键。但是,它可以在主键中有多个列。它还可以有多个唯一索引。通常,唯一索引是主键,但是可以在单个表上具有多个唯一索引。我无法想到一个例子,但是当我这样做时,我会添加它。

编辑:也许这样:在美国,机动车部可能会有一个包含2个唯一列的人员表 - 社会安全号码和驾驶执照号码。两者都应该是独一无二的。

答案 1 :(得分:5)

答案 2 :(得分:0)

据我所知,只有一个。但是,您可以将多个列(通常最多8或20,具体取决于RDBMS)与其他列组合作为唯一标识行的复合键。单个主键,单列或复合键,也可用于连接另一个表中的外键(一对多,多对一或多对多关系)。

答案 3 :(得分:0)

不,表不能有多个PK。

但它可以有一个复合键(一个PK在其定义中包含多个列)。此外,您可以拥有多个唯一约束,这些约束也可以跨越多列。