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