一张表往往有很多字段需要具有唯一性,数据不能重复,但是一张表中只能有一个主键。唯一键(unique key)就可以解决表中有多个字段需要唯一性约束的问题。唯一键的本质与主键差不多,唯一键默认的允许自动为空,而且可以多个为空(因为字段为空不参与唯一性比较)。
增加唯一键
基本与主键差不多,也有三种方法。
方案1:在创建表的时候,字段之后直接跟unique关键字
看到Key列下显示UNI就表示unique,代表唯一性生效了。
方案2:在所有的字段之后增加unique key(字段列表); -- 支持复合唯一键
上面显示PRI,其实不是主键,原因是:这里number刚好是一个不为空的唯一键(主键性质一样),真实原因是该表没有主键,系统自动给添加上去的。具体你可以使用下面show create table命令查看。
方案3:在创建表之后增加唯一键
上面先是创建一个没有唯一键的表,然后通过追加的方式给number添加唯一键属性。
唯一键约束
唯一键和主键本质相同,唯一区别是唯一键允许为空,而且多个字段允许为空。
举例,插入数据。
查看表数据
上面表示如果列属性有unique修饰,那么是允许为空,但是不能重复,下面来验证唯一性冲突检查。
删除唯一键
举例删除唯一键
语法格式:alter table 表名drop index 索引名称;
上面语法提到index,这个索引指的是什么呢,请看下图。
执行删除唯一键操作