UNIQUE约束和主键

UNIQUE约束和主键的比较

可以使用 UNIQUE 约束确保在非主键列中不输入重复的值。尽管 UNIQUE 约束和 PRIMARY KEY 约束都强制唯一性,但想要强制一列或多列组合(不是主键)的唯一性时应使用 UNIQUE 约束而不是 PRIMARY KEY 约束。

可以对一个表定义多个 UNIQUE 约束,但只能定义一个 PRIMARY KEY 约束。

而且,UNIQUE 约束允许 NULL 值,这一点与 PRIMARY KEY 约束不同。不过,当与参与 UNIQUE 约束的任何值一起使用时,每列只允许一个空值。

FOREIGN KEY 约束可以引用 UNIQUE 约束

什么时候用UNIQUE约束,而不是主键

创建唯一约束可确保在未参与主键的特定列中不输入重复值。尽管唯一约束和主键都强制唯一性,但如果情况如下,则应向表附加唯一约束而不是主键约束:

  • 希望在某一列或某一组列中强制唯一性。您可以向表附加多个唯一约束,但只能向表附加一个主键约束。
  • 希望在允许空值的列中强制唯一性。您可以向允许空值的列附加唯一约束,但只能向不允许空值的列附加主键约束。当向允许空值的列附加唯一约束时,请确保在所约束的列中最多只有一行包含空值。
原文地址:https://www.cnblogs.com/chenxizhang/p/1269687.html