Re: Weird unique constraint - Mailing list pgsql-general

From Thom Brown
Subject Re: Weird unique constraint
Date
Msg-id AANLkTiljQ62r63z4Eg9gLPgIfxQqiC5quYi7LF1AY5xZ@mail.gmail.com
Whole thread Raw
In response to Weird unique constraint  (Mike Christensen <mike@kitchenpc.com>)
Responses Re: Weird unique constraint  (Mike Christensen <mike@kitchenpc.com>)
List pgsql-general
On 12 May 2010 07:34, Mike Christensen <mike@kitchenpc.com> wrote:
I have the following constraint which almost works:

ALTER TABLE ingredientforms ADD CONSTRAINT
ingredientforms_UniqueIngredientForm UNIQUE(IngredientId,
FormDisplayName);

However, I want to allow rows that have the same IngredientId
FormDisplayName /iff/ FormDisplayName is null.  If FormDisplayName is
not null, then it must be unique.

1, NULL
1, NULL

Would be allowed.

1, 'Foo'
1, 'Foo'

would violate the constraint.

1, 'Foo'
1, 'Bar'

would be allowed.

Any way to do this?  Insert performance is not an issue since the
table is almost never changed..

Mike


What you've said you want to do looks like what you'd be allowed to do anyway.  You're allowed duplicate values on a unique constraint if one of the columns is null.

Regards

Thom  

pgsql-general by date:

Previous
From: Mike Christensen
Date:
Subject: Weird unique constraint
Next
From: Thom Brown
Date:
Subject: Re: Weird unique constraint