I have a table with a fk
column that should be unique when another int
column is > 0
. If that sentence doesn't make sense, here is an example of valid rows:
CREATE TABLE foo
AS
SELECT fk,int
FROM ( VALUES
( 1, -12 ),
( 1, 20 ),
( 1, 0 )
) AS (fk, int);
Adding a new row to the table with a fk
value of 1
and a int
column that is > 0
would be invalid.
Is there a way to do this with a constraint or index? I feel like an exclude constraint nearly gets me there, but I couldn't figure out a way to get it to work.
I'm using Postgres 9.6.2.