我有一个电子邮件列,我想保持唯一性。但我也希望它接受空值。这样我的数据库可以有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值。