我有一个邮箱专栏,我想成为独一无二的.但我也希望它接受空值.这样我的数据库能有两封空邮件吗?

推荐答案

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

例如,This is not true for all databases. SQL Server 2005及更高版本只允许在具有唯一约束的列中使用一个空值.

Mysql相关问答推荐

MariaDB /SQL僵局-并发插入

慢查询日志(log)甚至包括快速查询,因为它包括等待锁定所花费的时间

如何在Sequelize中将查询作为选项?

插入时发生日期时间字段溢出错误

表列中的SQL SUM MENY值记录单个查询

模拟Mysql Cursor类的fetchone()方法,并将其返回值设置为None

MySQL 8.0 可以在 Select 语句中返回 JSON 对象数组吗?

高效的 SQL 查询,用于计算半小时时间序列中已发生的行的一部分

在 MySQL 中使用非空条件 LAG() 函数

从 R 脚本创建新的 MYSQL 数据库

当用它的别名替换 (MAX(s.salary) - MIN(s.salary) 它将不起作用.. 为什么?

从多到多表中 Select 数据而无需重复

如何知道 Select 查询花费了多少时间?

我如何决定何时使用右连接/左连接或内连接或者如何确定哪个表在哪一侧?

MySQL SELECT 增量计数器

MySQL - 基于同一表中的行求和列值

Sequelize:销毁/删除表中的所有记录

在 MySQL 中签名或未签名

表被指定了两次,既作为更新的目标,又作为 mysql 中数据的单独源

设计用户角色和权限系统的最佳实践?