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 两条结果是成功
insert into student_uniq(id,name,socre) values(1,'',1),(1,'',1)
插入'' ,1 两条失败。
思考下null为什么允许重复插入呢?
个人猜想 因为null值代表一个未知的值 它和0 '' 空表示的意义不一样,0这种都是固定的值,而null代表一个不固定的值。