我不确定我是否正确表达了这个问题,所以我将尝试更长的解释。我有这种桌子:
CREATE TABLE x (a int, b int);
我想将(a,b)对与(b,a)相同,并禁止插入重复项。如果PostgreSQL有set数据类型,我可以这样声明表:
set
CREATE TABLE x ( ab set, UNIQUE (ab) );
但是事实并非如此,那么最好的方法是什么?
create unique index idx_unique_ab on x (least(a,b), greatest(a,b));