当列为假时如何添加复合约束

问题描述 投票:0回答:1

我都尝试过]

1)

ALTER TABLE artikal_normativi
  ADD CONSTRAINT "artikal_normativi_UIX" 
  UNIQUE(artikal_proizvod_id, artikal_materijal_id) 
WHERE deleted = false;

2)

CREATE UNIQUE INDEX artikal_normativi_UIX
  ON artikal_normativi
  USING btree(artikal_proizvod_id, artikal_materijal_id) 
  WHERE deleted = false;

ADD CONSTRAINT artikal_normativi_uix_constraint UNIQUE USING INDEX artikal_normativi_uix;

都给我错误。

第一条语句的错误:

ERROR:  syntax error at or near "WHERE"
LINE 2: ...UNIQUE(artikal_proizvod_id, artikal_materijal_id) WHERE dele...
                                                             ^
********** Error **********

ERROR: syntax error at or near "WHERE"

和第二条语句:

ERROR:  syntax error at or near "USING"
LINE 1: ...i ADD CONSTRAINT artikal_normativi_uix_constraint USING INDE...
                                                             ^

********** Error **********

ERROR: syntax error at or near "USING"
SQL state: 42601
Character: 79

我都尝试过1)ALTER TABLE artikal_normativi添加约束“ artikal_normativi_UIX” UNIQUE(artikal_proizvod_id,artikal_materijal_id)在哪里删除=假; 2)创建唯一索引...

postgresql ddl
1个回答
0
投票

您不能具有带有局部索引的UNIQUE约束。

© www.soinside.com 2019 - 2024. All rights reserved.