小编典典

跨多列排列的唯一约束

sql

给定Postgres数据库中的以下三列:第一,第二,第三;我如何创建一个约束使得排列是唯一的?

例如,如果('foo', 'bar', 'shiz')数据库中存在,('bar', 'shiz', 'foo')则将其作为非唯一变量排除在外。


阅读 171

收藏
2021-04-07

共1个答案

小编典典

您可以使用hstore创建唯一索引:

CREATE UNIQUE INDEX hidx ON test USING BTREE (hstore(ARRAY[a,b,c], ARRAY[a,b,c]));

更新

实际上

CREATE UNIQUE INDEX hidx ON test USING BTREE (hstore(ARRAY[a,b,c], ARRAY[null,null,null]));
2021-04-07