Dav*_*och 3 postgresql constraint unique-constraint postgresql-9.6
我有一个表,其中一fk
列应该是唯一的,当另一int
列是> 0
. 如果这句话没有意义,以下是有效行的示例:
CREATE TABLE foo
AS
SELECT fk,int
FROM ( VALUES
( 1, -12 ),
( 1, 20 ),
( 1, 0 )
) AS (fk, int);
Run Code Online (Sandbox Code Playgroud)
向表中添加一个fk
值为 的新行1
和一int
列是> 0
无效的。
有没有办法用约束或索引来做到这一点?我觉得排除约束几乎让我到达那里,但我无法找到让它工作的方法。
我正在使用 Postgres 9.6.2。
小智 6
添加条件唯一索引
CREATE UNIQUE INDEX IndexName ON foo (fk) WHERE (int>0);
Run Code Online (Sandbox Code Playgroud)
dbfiddle在这里
归档时间: |
|
查看次数: |
348 次 |
最近记录: |