postgreSQL中的唯一索引
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgreSQL中的唯一索引相关的知识,希望对你有一定的参考价值。
我有一个具有唯一索引的PostgreSQL表
CREATE SEQUENCE public.batterysensorhistory_id_seq NO MINVALUE NO
MAXVALUE NO CYCLE;
CREATE TABLE batterysensorhistory
(
id integer DEFAULT
nextval('batterysensorhistory_id_seq'::regclass) PRIMARY KEY NOT NULL,
batteryid uuid NOT NULL,
sensorid integer NOT NULL,
isactivelink boolean DEFAULT false NOT NULL,
...
);
create unique index on batterysensorhistory (batteryid, sensorid, isactivelink)
where isactivelink = TRUE;
我想设置一个约束,只有一行具有相同的batteryid && sensorid可以有isactivelink = true,但我的唯一索引不起作用。
另外,我在sqlfiddle中创建了这个例子:http://sqlfiddle.com/#!15/c3b37/1
我的代码有什么想法,有什么不对吗?
答案
我想你想要:
create unique index on batterysensorhistory (batteryid, sensorid)
where isactivelink = TRUE;
但是你的版本应该可行。
Here就是它失败的一个例子。
以上是关于postgreSQL中的唯一索引的主要内容,如果未能解决你的问题,请参考以下文章
错误:分布式表的唯一索引必须包含散列分布列。啥时候从 postgresql 迁移到 postgresql-xl