UNIQUE KEY可以为NULL,但是NULL只能有一个,为什么我的结果和这个不一样
我创建了一个表t3
| t3 | CREATE TABLE `t3` (
`id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(20) DEFAULT NULL,
`test` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+---------------------------------
username是UNIQUE KEY,老师设置的是NOT NULL 我没有设置,默认为可以为NULL, 然后我插入了两次,只插入了第三个字段test,,都成功了,看一下结果,发现username字段可以为NULL,而且是多次为NULL,是哪里出了问题了呢,老师不是说为了保证唯一性,UNIQUE KEY约束只能有一个NULL吗
mysql> INSERT t3(test) VALUES('a');
Query OK, 1 row affected (0.00 sec)
mysql> select * from t3;
+----+----------+------+
| id | username | test |
+----+----------+------+
| 1 | NULL | a |
+----+----------+------+
1 row in set (0.00 sec)
mysql> INSERT t3(test) VALUES('b');
Query OK, 1 row affected (0.00 sec)
mysql> select * from t3;
+----+----------+------+
| id | username | test |
+----+----------+------+
| 1 | NULL | a |
| 2 | NULL | b |
+----+----------+------+
2 rows in set (0.00 sec)