0

我有一个帐户表,它生成带有序列的唯一键。它用于为帐户和帐户/用户对生成唯一身份。

我从 pgsql 尝试了以下内容:

CREATE INDEX ON accounts (account_id, user_id) WHERE user_id IS NULL;

CREATE UNIQUE INDEX ON accounts (account_id, COALESCE(user_id, ''));

但蟑螂不支持这两种情况。

是否有另一种方法可以确保 NULL 值的唯一性?

我还有一个不同的 UNIQUE 索引,user_id以允许为没有帐户的用户生成唯一 ID。

4

1 回答 1

2

您可以执行类似创建计算列然后在索引中使用它的操作:

alter table accounts add column user_null int null as (coalesce(user_id, 0));
create unique index on accounts (account_id, user_null);
于 2018-09-19T17:47:00.060 回答