首先说特征:
一张表往往需要多个字段具有唯一性,但是只有一个主键
唯一键就是用来解决表中多个字段需要具有唯一性的问题。
和主键的区别在于:
唯一键允许字段值为空,并且允许多个空值存在。
首先还是追加唯一键和删除唯一键的方法:
--追加
alter table tableName add unique key(xxx)
--删除
alter table my_unique3 drop index number;
--这里和主键做一点区分的是这里是drop index + 列属性
--因为唯一键可能有多个
两外两种创建方法和主键差不多,这里就不重复写了,看主键就明白了
只不过换了个词
create table my_unique(
number char(10) unique comment '学号',//直接声明
name varchar(20) not null
)charset utf8;
...
unique key(number) --在列属性的最后边补
小插曲:
desc tableName
会发现我们命名的number字段的key是PRI,这是主键的标识
咱们设置的唯一键UNI,怎么变成了主键PRI啊?这是由于当唯一键满足非空条件的时候,其性质就和主键一样啦,因此在表中显示为PRI