mysql:刚刚知道的冷知识(一)

唯一索引的值可以null

1.创建一张user表,name字段指定为唯一索引

create table user(
id int primary key auto_increment,
name varchar(16),
unique unique_name (name(16))
);

2.插入一条name为"Tom"的记录

mysql> insert into user(name) values("Tom");
Query OK, 1 row affected (0.00 sec

3.再次插入一条name为"Tom"的记录,会报错

mysql> insert into user(name) values("Tom");
ERROR 1062 (23000): Duplicate entry 'Tom' for key 'unique_name'

4.插入一条name值为null的记录,不会报错

mysql> insert into user(name) values(null);
Query OK, 1 row affected (0.00 sec)

5.再插入一条记录name为null的记录,也不会报错

mysql> insert into user(name) values(null);
Query OK, 1 row affected (0.00 sec)

6.查看一下表中的的记录

mysql> select * from user;
+----+------+
| id | name |
+----+------+
|  2 | NULL |
|  3 | NULL |
|  1 | Tom  |
+----+------+
3 rows in set (0.00 sec)

主键索引和唯一索引的区别,唯一索引的值可以为null,即可以有多条为null的记录存在。

原文地址:https://www.cnblogs.com/Zioyi/p/13583427.html