在postgres中对一行添加部分唯一性约束,这样就可以复制一个值

6yt4nkrj  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(322)

我想创建一个电子邮件表 emails 其中“email”列中的所有值必须是唯一的,除了一个redacted@redacted.com“占位符。例子:
foo@gmail.com
bar@gmail.com
redacted@redacted.com
zoo@gmail.com
redacted@redacted.com
hey@gmail.com
redacted@redacted.com
我在postgres文档中看到允许 null 值是不可复制的,但是有没有一种方法可以用另一个值来实现这一点?

mwyxok5s

mwyxok5s1#

您可以创建筛选的唯一索引:

create unique index unq_emails_email on (email)
    where email <> 'redacted@redacted.com';

相关问题