MySQL是否会根据唯一性约束忽略空值?

我有一个电子邮件列,我想保持唯一性。但我也希望它接受空值。这样我的数据库可以有2个空电子邮件吗?



MMTTMM
浏览 1017回答 3
3回答

胡说叔叔

是的,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;结果:xNULLNULL1并非对于所有数据库都是如此。例如,SQL Server 2005和更早版本仅在具有唯一约束的列中允许单个NULL值。

ibeautiful

避免可为空的唯一约束。您始终可以将列放在新表中,使其变为非空且唯一,然后仅在具有值时填充该表。这样可以确保对列的任何键依赖关系都可以正确实施,并避免了可能由null引起的任何问题。
打开App,查看更多内容
随时随地看视频慕课网APP