mysql之uniquekey学习。

uniquekey就真的是唯一键了吗? 答案是不是的。可以允许多个重复null值的存在,版本5.73

CREATE TABLE `student_uniq` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(200) DEFAULT NULL,
  `socre` int(11) DEFAULT NULL,
  UNIQUE KEY `s_uniq` (`socre`,`name`)
)

insert into student_uniq(id,name,score) values(1,null,1),(1,null,1)

 注意唯一键是score+name

 我插入了重复的数据 null 1 两条结果是成功

mysql之uniquekey学习。_第1张图片

insert into student_uniq(id,name,socre) values(1,'',1),(1,'',1)

mysql之uniquekey学习。_第2张图片

插入'' ,1 两条失败。

思考下null为什么允许重复插入呢?

个人猜想 因为null值代表一个未知的值 它和0 '' 空表示的意义不一样,0这种都是固定的值,而null代表一个不固定的值。 

你可能感兴趣的:(转载学习,mysql,学习,数据库)