Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个电子邮件邮寄列表。每个注册的用户都有一个激活密钥。激活密钥最初是在注册时创建的。每把钥匙都是独一无二的。
一旦用户确认注册,这就是数据库中的一个空字符串。
如果字段中有空值,我有没有办法创建一个独特的约束。
换句话说,如果不是 null 或唯一的空字符串,则所有值都是允许的。
我设置为唯一并允许为空,但这不起作用。我无法输入 null 和唯一值,即设置为 null 唯一时多次输入 null
不,您将无法创建这样的唯一约束,因为唯一约束就是唯一的,并且具有 NULL 或空字符串的多行将是重复的行。但是,我建议您不要清空此列,而是使用指示注册已确认的布尔字段 - 它更直接,然后您可以在该字段上使用唯一约束。
在mysql中
当所有值都没有空值填充时,列或唯一索引仅检查约束