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

unique key能保证记录的唯一性,这个地方有点歧义

有一种情况,就是这个加了唯一索引的字段可以为null,这时有2条记录中这个字段为null并且其他字段都一致,岂不是就不能保证记录的唯一性了,如下图

http://img1.sycdn.imooc.com//57209314000177b308600934.jpg


正在回答

2 回答

你是不是看错了,你第一个红框的unique key是name字段上的。

你测试添加的两条数据都是针对age,然而age这个数据并没有设置unique key,所以可以重复的。所以我想说你是不是看错了。

还有啊,那个unique key这个可以有多个null值,但其他相同的数据则不允许存在。

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

Airly

纠正下,可以有多个null值,这个说法错了啊~ ------------------------------------------- 除了SQL SERVER 以外的大型数据库都是允许 UNIQUE约束有多个空值的。 ------------------------------------------------------------------ 原理是这样的:主键和唯一键约束是通过参考索引实施的,如果插入的值均为NULL,则根据索引的原理,全NULL值不被记录在索引上,所以插入全NULL值时,可以有重复的,而其他的则不能插入重复值。
2016-09-29 回复 有任何疑惑可以回复我~
#2

Airly 回复 Airly

所以,根据那个原理来的话,你上面那两条信息应该只能算做1条有效信息...
2016-09-29 回复 有任何疑惑可以回复我~

这里说的是输入的名字的唯一性吧 空值是没有输入啊

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

taylorfeng 提问者

课程里面说的是“Unique Key能保证记录唯一性”,但是我这上图情况不是区分不了记录了嘛,那不是这句话不能成立了
2016-08-03 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

unique key能保证记录的唯一性,这个地方有点歧义

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