课程
/数据库
/MySQL
/与MySQL的零距离接触
我建的tb3,将username设置为unique key,然后插入记录,有两条记录里username为null,也没报错,这怎么保证记录唯一性?
2016-04-04
源自:与MySQL的零距离接触 2-13
正在回答
你可以查看一下数据表的结构
SHOW COLUMNS FROM tb3;
按老师讲的应该是当唯一约束存在多个空值时,不会报错但只能保留一个
老师在视频里面讲了啊。。值可以多个为NULL。。我的理解是,一个数据表中多个NULL都指向了同一个地址空间。下一张表中的多个NULL又指向另外的地址空间。两者地址空间不一样,保证记录唯一性。
主键和唯一键约束是通过参考索引实施的,如果插入的值均为NULL,则根据索引的原理,全NULL值不被记录在索引上,所以插入全NULL值时,可以有重复的,而其他的则不能插入重复值。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);#可以重复
原文地址:http://zccst.iteye.com/blog/1697043
我也是才学你可以参考下。
举报
本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识