小编典典

MySQL 是否忽略唯一约束的空值?

all

我有一个我想要独一无二的电子邮件专栏。但我也希望它接受空值。我的数据库可以这样有 2 封空电子邮件吗?


阅读 128

收藏
2022-03-28

共1个答案

小编典典

是的,MySQL 允许在具有唯一约束的列中使用多个 NULL。

CREATE TABLE table1 (x INT NULL UNIQUE);
INSERT table1 VALUES (1);
INSERT table1 VALUES (1);   -- Duplicate entry '1' for key 'x'
INSERT table1 VALUES (NULL);
INSERT table1 VALUES (NULL);
SELECT * FROM table1;

结果:

x
NULL
NULL
1

并非所有数据库都如此。 例如,SQL Server 2005 和更早版本只允许在具有唯一约束的列中使用单个 NULL 值。

2022-03-28