小编典典

如何在多个列之间强制执行类似集合的唯一性?

sql

我不确定我是否正确表达了这个问题,所以我将尝试更长的解释。我有这种桌子:

CREATE TABLE x (a int, b int);

我想将(a,b)对与(b,a)相同,并禁止插入重复项。如果PostgreSQL有set数据类型,我可以这样声明表:

CREATE TABLE x (
    ab set,
    UNIQUE (ab)
);

但是事实并非如此,那么最好的方法是什么?


阅读 196

收藏
2021-04-14

共1个答案

小编典典

create unique index idx_unique_ab
on x (least(a,b), greatest(a,b));

2021-04-14