Re: Weird unique constraint - Mailing list pgsql-general

From Mike Christensen
Subject Re: Weird unique constraint
Date
Msg-id AANLkTikLrMEQhCDfNiQM-A-m_tQSOdS0jxJARpWaw1aH@mail.gmail.com
Whole thread Raw
In response to Re: Weird unique constraint  (Thom Brown <thombrown@gmail.com>)
Responses Re: Weird unique constraint  (Thom Brown <thombrown@gmail.com>)
Re: Weird unique constraint  ("Igor Neyman" <ineyman@perceptron.com>)
List pgsql-general
By golly you're right; maybe I should try this stuff before I email
hundreds of people :)

On Wed, May 12, 2010 at 12:00 AM, Thom Brown <thombrown@gmail.com> wrote:
> 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: "A. Kretschmer"
Date:
Subject: Re: Weird unique constraint
Next
From: Dave Page
Date:
Subject: Re: Question about Beta for Windows 64 bits