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 次 |
| 最近记录: |