首页 >数据库 >mysql教程 >多个 NULL 值可以在具有唯一约束的 MySQL 列中共存吗?

多个 NULL 值可以在具有唯一约束的 MySQL 列中共存吗?

Barbara Streisand
Barbara Streisand原创
2024-12-07 17:36:17460浏览

Can Multiple NULL Values Coexist in a MySQL Column with a UNIQUE Constraint?

MySQL 中的唯一约束和空值

人们可能会遇到需要在列上强制唯一性同时允许空值的情况。在 MySQL 中,这种行为在某些情况下是受支持的。

让我们考虑一个名为“email”的列,它应该遵守唯一性规则,但也可以容纳空值。多个空电子邮件可以在这样的设置中共存吗?

是的,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

如图所示,MySQL 中的唯一列中可以存在多个空值。此行为是 MySQL 所独有的,可能不适用于其他数据库管理系统。例如,SQL Server 2005 及更早版本仅允许具有唯一约束的列中存在单个 NULL 值。

以上是多个 NULL 值可以在具有唯一约束的 MySQL 列中共存吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn