MySQL 唯一约束:空值
在 MySQL 中,强制执行唯一约束以保证指定列中值的唯一性。但是,在处理电子邮件地址时,常见的情况是使用空值来表示可选或未提供的地址。这就提出了一个问题:
MySQL 可以允许在具有唯一约束的列中存在多个空值吗?
答案:
是的,MySQL 允许在具有唯一约束的列中存在多个空值。此行为与某些其他数据库系统不同。
示例:
以下 SQL 语句创建一个名为 table1 的表,其中的整数列 x 被定义为唯一并允许空值:
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);
运行查询检索 table1 中的所有记录将产生以下结果:
SELECT * FROM table1;
x |
---|
NULL |
NULL |
1 |
注意: 此行为是特定的到 MySQL。其他数据库系统(例如 SQL Server 2005 及更早版本)会限制具有唯一约束的列中允许出现单个空值。
以上是MySQL的唯一约束可以处理多个NULL值吗?的详细内容。更多信息请关注PHP中文网其他相关文章!