InnoDB是否支持“UNIQUE IF NOT NULL”索引?即一个允许多个NULL值的UNIQUE索引?
(我想没有,因为我无法找到任何相关内容 - 发现了许多有点相关的事情,但没有明确答案)
答案 0 :(得分:2)
在InnoDB中,唯一的二级索引支持多个NULL(主索引根本不支持NULL)。例如:
mysql> create table x (i int, j int, primary key (i), unique key (j));
mysql> insert into x (i,j) values (NULL,NULL);
ERROR 1048 (23000): Column 'i' cannot be null
mysql> insert into x (i,j) values (1,NULL);
mysql> insert into x (i,j) values (2,NULL);
mysql> insert into x (i,j) values (3,3);
mysql> select * from x;
+---+------+
| i | j |
+---+------+
| 1 | NULL |
| 2 | NULL |
| 3 | 3 |
+---+------+
3 rows in set (0.01 sec)
mysql> insert into x (i,j) values (4,3);
ERROR 1062 (23000): Duplicate entry '3' for key 'j'