我有一个电子邮件邮寄列表。每个注册的用户都有一个激活 key 。激活 key 最初是在注册时创建的。每个 key 都是唯一的。
一旦用户确认注册,这就是数据库中的一个空字符串。
如果字段中有 null,有没有办法让我创建一个唯一的约束。
换句话说,所有值(如果不是 null 或空字符串)都是唯一的。
我设置为唯一并允许空值,但这不起作用。我无法输入 null 和唯一值,即当设置为 null unique 时多次输入 null
最佳答案
不,您将无法创建这样的唯一约束,因为唯一约束就是唯一的,并且具有 NULL 或空字符串的多行将是重复的行。但是,我建议您不要清空此列,而是使用一个 bool 字段来指示注册已确认 - 这样更直接,然后您可以在该字段上使用唯一约束。
关于Mysql唯一值或空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11888560/