Can I CONSTRAIN a particular value to be UNIQUE?

From: reina(at)nsi(dot)edu (Tony Reina)
To: pgsql-sql(at)postgresql(dot)org
Subject: Can I CONSTRAIN a particular value to be UNIQUE?
Date: 2001-11-29 19:01:11
Message-ID: f40d3195.0111291101.3b2a5074@posting.google.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

I have a table where I'd like to store only one instance where a trial
was successful, but all instances where the trial failed. The success
or failure is indicated by the field called 'success'. There should be
only one unique case for each trial where success = 1, but an
undefined number of cases where success = 0.

e.g.
CREATE TABLE table_1 (
subject text,
target int2,
trial int4,
success int2,
data float4 );

CREATE UNIQUE INDEX pktable_1 ON table_1 (subject, target, trial);

I'd like to have some way for SQL to give me an error if I attempt to
insert more than one instance of a given subject, target, and trial
where success = 1, but would allow me to insert as many instances of
the same subject, target, and trial where success = 0.

Is there a way to do this at table creation time?

Thanks.
-Tony

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Peter Eisentraut 2001-11-29 19:04:34 Re: date_part vs extract
Previous Message Tom Lane 2001-11-29 17:02:55 Re: PL/pgSQL loops?