From: | Andreas Joseph Krogh <andreak(at)officenet(dot)no> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Constraint question |
Date: | 2006-05-18 19:05:55 |
Message-ID: | 200605182105.55753.andreak@officenet.no |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On Thursday 18 May 2006 18:38, Markus Schaber wrote:
> Hi, Andreas,
>
> Andreas Joseph Krogh wrote:
> > create table onp_crm_businessfield_company(
> > businessfield_id integer not null references onp_crm_businessfield(id),
> > company_id integer not null references onp_crm_relation(id),
> > is_preferred boolean,
> > UNIQUE(businessfield_id, company_id)
> > );
> >
> > I want a constraint on "is_preffered" so that it's only allowed to be set
> > once pr. businessfield_id pr. company so that only one businessfield can
> > be preferred for a company. Does anyone have an idea how to enforce this?
>
> CREATE UNIQUE INDEX foo ON onp_crm_businessfield_company(company_id)
> WHERE is_prefferred;
Thanks.
I also figured out that an index like this also works:
UNIQUE(company_id, is_preferred)
This works because NULL = NULL is false. But I guess your solution is cleaner.
--
Andreas Joseph Krogh <andreak(at)officenet(dot)no>
Senior Software Developer / Manager
gpg public_key: http://dev.officenet.no/~andreak/public_key.asc
------------------------+---------------------------------------------+
OfficeNet AS | The most difficult thing in the world is to |
Hoffsveien 17 | know how to do a thing and to watch |
PO. Box 425 Skøyen | somebody else doing it wrong, without |
0213 Oslo | comment. |
NORWAY | |
Phone : +47 22 13 01 00 | |
Direct: +47 22 13 10 03 | |
Mobile: +47 909 56 963 | |
------------------------+---------------------------------------------+
From | Date | Subject | |
---|---|---|---|
Next Message | Thusitha Kodikara | 2006-05-19 02:43:47 | Re: Encryption functions |
Previous Message | Tony Wasson | 2006-05-18 17:53:58 | Re: help..postgresql mulyiple return values |