将表的属性声明为UNIQUE,等同于将其声明为PRIMARY KEY吗?
非常感谢!
答案 0 :(得分:14)
不。
PRIMARY KEY必须是UNIQUE,但UNIQUE键不必是主键。您可以在表格中使用多个UNIQUE键。
关键区别在于PRIMARY键不能具有NULL值,因为它们必须唯一地标识一行。 UNIQUE键可能为NULL,并且允许多个NULL值(除非您使用的是非常见的表引擎,如BDB)。
答案 1 :(得分:8)
不同的是: 主键默认创建聚簇索引,一个表中只能存在一个PK。主键可以覆盖多个列(复合键)
答案 2 :(得分:4)
两者不相同但相似,当列为唯一时,它具有唯一值,但它也允许该列中的一个Null值,但Primary不允许任何空值。 主键可用于其他表中的参考。
表中只能有一个主键,但多个唯一键
当您声明UNIQUE约束时,SQL Server会创建一个UNIQUE索引以加快搜索重复项的过程。在这种情况下,索引默认为NONCLUSTERED索引,因为每个表只能有一个CLUSTERED索引。
与PRIMARY键相反,UNIQUE约束可以接受NULL但只接受一次。如果约束是在字段组合中定义的,那么每个字段都可以接受NULL并且可以在它们上面有一些值,只要组合值是唯一的。
快乐编码!!!
答案 3 :(得分:4)
UNIQUE仍然可以为NULL。
PRIMARY KEY表示UNIQUE和NOT NULL,每个表只能有一个PRIMARY KEY。
答案 4 :(得分:1)
不..他们不等同。唯一键可能具有Null值,但不允许主键具有空值。 这是解释差异的链接 http://sqlhints.com/2013/06/02/difference-between-primary-key-and-unique-key-in-sql-server/
答案 5 :(得分:0)
不。将列设置为唯一与使其成为主键或主键的一部分非常不同。