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中文网其他相关文章!