Re: Weird unique constraint

From: Thom Brown <thom(at)linux(dot)com>
To: Mike Christensen <mike(at)kitchenpc(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Weird unique constraint
Date: 2010-05-12 06:55:46
Message-ID: AANLkTimSlGRK3SUY9TYz_OSNOzMAVHcbNhDV2c_j5hS2@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 12 May 2010 07:34, Mike Christensen <mike(at)kitchenpc(dot)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

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Thom Brown 2010-05-12 07:00:06 Re: Weird unique constraint
Previous Message Mike Christensen 2010-05-12 06:34:17 Weird unique constraint