主键和唯一键的区别
唯一键 (UK): 它是一个列或一组列,可以在行中标识唯一性。
主键 (PK): 它也是一个列或一组列,可以在行中标识唯一性。
因此,主键只是另一个名称的唯一键,但 SQL Server 中的默认实现对主键和唯一键不同。
默认情况下:
- PK 创建一个聚簇索引,而 UK 创建一个非聚簇索引。
- PK 不允许为空,但 UK 允许为空 (注意:默认情况下)
- 一个表只能有一个且仅有一个主键,但可以有多个 UK。
- 您可以根据需要覆盖默认实现。
当决定创建 UK 还是 PK 时,这实际上取决于您的目标。它遵循一个类比,就像“如果有一个三人团队,那么他们都是同事,但其中一个人将是一对同事:PK 和 UK 有类似的关系。”我建议阅读这篇文章:作者给出的例子可能看起来不太适合,但请试着获取一个总体的想法。
http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html