给定Postgres数据库中的以下三列:第一,第二,第三;我如何创建一个约束使得排列是唯一的?
例如,如果('foo', 'bar', 'shiz')数据库中存在,('bar', 'shiz', 'foo')则将其作为非唯一变量排除在外。
('foo', 'bar', 'shiz')
('bar', 'shiz', 'foo')
您可以使用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]));