3

我有一个电子邮件邮寄列表。每个注册的用户都有一个激活密钥。激活密钥最初是在注册时创建的。每把钥匙都是独一无二的。

一旦用户确认注册,这就是数据库中的一个空字符串。

如果字段中有空值,我有没有办法创建一个独特的约束。

换句话说,如果不是 null 或唯一的空字符串,则所有值都是允许的。

我设置为唯一并允许为空,但这不起作用。我无法输入 null 和唯一值,即设置为 null 唯一时多次输入 null

4

2 回答 2

2

不,您将无法创建这样的唯一约束,因为唯一约束就是唯一的,并且具有 NULL 或空字符串的多行将是重复的行。但是,我建议您不要清空此列,而是使用指示注册已确认的布尔字段 - 它更直接,然后您可以在该字段上使用唯一约束。

于 2012-08-09T17:17:46.250 回答
2

在mysql中

当所有值都没有空值填充时,列或唯一索引仅检查约束

于 2020-05-09T09:18:00.290 回答