主键和唯一约束以同样的方式进行元组化吗?

时间:2015-11-09 02:22:28

标签: sql primary-key unique-constraint

据我所知,如果你将多个列标记为主键,它们的元组将是实际的主键,其中,给定表中的2个主键,多行,我有1个主键的相同条目键,只要他们没有任何其他行的2个匹配。我对吗?如果是这样,Unique Constraints的工作方式是否相同?我觉得有一个类似于主键的结构是有用的,但它与其他行的比较'密钥是OR而不是AND&#d; dd,所以在每行n个主密钥的情况下,可能没有匹配而不是n - 1个潜在匹配。

1 个答案:

答案 0 :(得分:0)

您的描述功能正确,但术语错误。

任何表都只有一个PRIMARY KEY。如果您使用包含多个列的PRIMARY KEY修饰符,则表示每列都成为键的元素,而不是有两个(或更多)PRIMARY KEY个。

UNIQUE约束与主键的工作方式相同,约束中元素的元组在所有行中必须是唯一的。

然而,我并不完全遵循你提出的其余问题,我认为只有在对PRIMARYUNIQUE约束的要素的误解的背景下才有意义

如果您有一个复合PRIMARY KEY并且您想要确保密钥中的每个列也是唯一的,那么您需要在构成{{的每个列上使用单独的UNIQUE约束1}}。这听起来像一个非常奇怪的要求,让我觉得你实际上是在同一个表中存储了一堆不同的项目。

相关问题