为了账号安全,请及时绑定邮箱和手机立即绑定

为什么插入记录,给unique key 多个赋为null时,也没报错?

570216370001532a03290109.jpg

570216370001532a03290109.jpg

我建的tb3,将username设置为unique key,然后插入记录,有两条记录里username为null,也没报错,这怎么保证记录唯一性?

正在回答

3 回答

你可以查看一下数据表的结构

SHOW COLUMNS FROM tb3;

按老师讲的应该是当唯一约束存在多个空值时,不会报错但只能保留一个


0 回复 有任何疑惑可以回复我~

老师在视频里面讲了啊。。值可以多个为NULL。。我的理解是,一个数据表中多个NULL都指向了同一个地址空间。下一张表中的多个NULL又指向另外的地址空间。两者地址空间不一样,保证记录唯一性。

0 回复 有任何疑惑可以回复我~

主键和唯一键约束是通过参考索引实施的,如果插入的值均为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

我也是才学你可以参考下。

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

为什么插入记录,给unique key 多个赋为null时,也没报错?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信