开发者社区 问答 正文

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

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

展开
收起
保持可爱mmm 2020-05-11 17:38:57 655 分享 版权
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值。来源:stack overflow

    2020-05-11 17:39:09
    赞同 展开评论