我有一个电子邮件邮件列表表。注册时,每个用户都有一个激活密钥。最初在注册时创建激活密钥。每个密钥都是唯一的。
一旦用户确认注册,这就是数据库中的一个空字符串。
如果现场有空,是否可以创建一个独特的约束。
换句话说,所有值(如果不为null)或emptry字符串都是唯一的。
我设置为unique并允许null但这不起作用。我无法输入null和唯一值,即设置为null unique
时多次为null答案 0 :(得分:1)
在mysql
仅当所有值均填充为空值时,列或唯一索引才检查约束
答案 1 :(得分:0)
不,您将无法创建这样的唯一约束,因为唯一约束就是唯一,并且具有NULL或空字符串的多行将是重复行。但是,我建议你不清空这个列,而是使用一个布尔字段来表示注册已经确认 - 它更直接,然后你可以在该字段上使用唯一约束。