我有一个电子邮件专栏,我希望它是独一无二的。但我也希望它接受空值。我的数据库可以有 2 个空电子邮件吗?
是的,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 值。