对postgres的条件唯一约束

时间:2016-10-31 02:23:27

标签: sql postgresql

我试图基本上对postgresql架构强制执行一个唯一约束,我已经使用了如下的部分索引:

CREATE UNIQUE INDEX emails_email_key ON emails (email) WHERE verified = 'true'

虽然这通常用于验证是否存在单个经过验证的电子邮件,但我担心的是我是否可以创建数据库约束,以便在a@example.com电子邮件和verified设置为true已经存在,我们可以禁止email设置为a@example.com的任何新记录,无论verified列的值是多少。在我创建的约束中,我们可以插入新记录,电子邮件a@example.comverified设置为false,这对插入和电子邮件验证过程没有多大意义本身,但我将不得不在应用程序级别处理更多的情况,我希望我可以卸载到数据库约束本身。

任何建议都会有所帮助。谢谢!

0 个答案:

没有答案