mysql 唯一和主键

pjngdqdw  于 2023-10-15  发布在  Mysql
关注(0)|答案(6)|浏览(128)

将表的属性声明为UNIQUE等同于将其声明为PRIMARY KEY吗?

mzsu5hc0

mzsu5hc01#

不知道
PRIMARY KEYs必须是UNIQUE,但UNIQUE键不必是主键。一个表中可以有多个UNIQUE键。
键的区别在于PRIMARY键不能有NULL值,因为它们必须唯一地标识一行。UNIQUE键可以是NULL,并且允许多个NULL值(除非您使用的是像BDB这样的不常见的表引擎)。

7y4bm7vi

7y4bm7vi2#

不同的是:主键默认创建聚集索引,一个表只能有一个主键。主键可以覆盖多列(复合键)

3pvhb19x

3pvhb19x3#

UNIQUE仍然可以为NULL。
PRIMARY KEY表示UNIQUE和NOT NULL,每个表只能有一个PRIMARY KEY。

7fhtutme

7fhtutme4#

它们不一样,但很相似。当一个列是唯一的,它有唯一的值,但它也允许在该列中有一个NULL值,而主键不允许任何NULL值。
主键可以用于在其他表中引用。
一个表中只能有一个主键,但可以有多个唯一键。
声明UNIQUE约束时,SQLServer将创建UNIQUE索引以加快搜索重复项的过程。在这种情况下,索引默认为NONCLUSTERED索引,因为每个表只能有一个CLUSTERED索引。
每个表的UNIQUE约束的数量受到表上索引数量的限制,即249个NONCLUSTERED索引和一个可能的CLUSTERED索引。
与PRIMARY KEY相反,UNIQUE约束只能接受NULL一次。如果约束是在字段的组合中定义的,那么每个字段都可以接受NULL,并且可以有一些值,只要值的组合是唯一的。

wh6knrhe

wh6knrhe5#

不..它们不等同。唯一键可以具有空值,但主键不允许具有空值。下面是解释http://sqlhints.com/2013/06/02/difference-between-primary-key-and-unique-key-in-sql-server/差异的链接

cunj1qz1

cunj1qz16#

不。使列唯一与使其成为主键或主键的一部分有很大的不同。

相关问题