Primary Key与Unique Key


Primary key 与Unique Key都是MySQL数据库的惟一性约束。可是两者有很大的区别:sql

一、Primary key的1个或多个列必须为NOT NULL,若是列为NULL,在增长PRIMARY KEY时,列自动更改成NOT NULL。而UNIQUE KEY 对列没有此要求,即惟一约束的字段能够存在着空值。数据库

二、一个表只能有一个PRIMARY KEY,但能够有多个UNIQUE KEY。索引

主键和惟一键约束是经过参考索引实施的,若是插入的值均为NULL,则根据索引的原理,全NULL值不被记录在索引上,因此插入全NULL值时,能够有重复的,而其余的则不能插入重复值。get

例如:
alter table t add constraint uk_t_1 unique (a,b);
insert into t (a ,b ) values (null,1);    # 不能重复
insert into t (a ,b ) values (null,null);   # 能够重复table

参考内容:http://www.w3school.com.cn/sql/sql_unique.asp原理

相关文章
相关标签/搜索