我有一个可选的电子邮件字段。正则表达式很好地接受空字符串(^ $),但现在的问题是空字符串被认为是唯一的条目。它只允许一个用户在不输入电子邮件地址的情况下进行注册。我知道我必须将它设置为null,但不确定如何。
这样的事情:
答案 0 :(得分:4)
您可以使用partial index:
CREATE UNIQUE INDEX idx_unq_tab_email ON tab(email) WHERE TRIM(email) <> '';
<强> DBFiddle Demo 强>
这样你仍然有UNIQUE
约束加上原始值。