Mysql唯一值或空字符串

时间:2012-08-09 17:13:29

标签: mysql sql unique

我有一个电子邮件邮件列表表。注册时,每个用户都有一个激活密钥。最初在注册时创建激活密钥。每个密钥都是唯一的。

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

如果现场有空,是否可以创建一个独特的约束。

换句话说,所有值(如果不为null)或emptry字符串都是唯一的。

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

时多次为null

2 个答案:

答案 0 :(得分:1)

在mysql

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

答案 1 :(得分:0)

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