据我所知,如果你将多个列标记为主键,它们的元组将是实际的主键,其中,给定表中的2个主键,多行,我有1个主键的相同条目键,只要他们没有任何其他行的2个匹配。我对吗?如果是这样,Unique Constraints的工作方式是否相同?我觉得有一个类似于主键的结构是有用的,但它与其他行的比较'密钥是OR而不是AND&#d; dd,所以在每行n个主密钥的情况下,可能没有匹配而不是n - 1个潜在匹配。
答案 0 :(得分:0)
您的描述功能正确,但术语错误。
任何表都只有一个PRIMARY KEY
。如果您使用包含多个列的PRIMARY KEY
修饰符,则表示每列都成为键的元素,而不是有两个(或更多)PRIMARY KEY
个。
UNIQUE
约束与主键的工作方式相同,约束中元素的元组在所有行中必须是唯一的。
然而,我并不完全遵循你提出的其余问题,我认为只有在对PRIMARY
或UNIQUE
约束的要素的误解的背景下才有意义
如果您有一个复合PRIMARY KEY
并且您想要确保密钥中的每个列也是唯一的,那么您需要在构成{{的每个列上使用单独的UNIQUE
约束1}}。这听起来像一个非常奇怪的要求,让我觉得你实际上是在同一个表中存储了一堆不同的项目。