From: | "Jonathan S(dot) Katz" <jonathan(dot)katz(at)excoventures(dot)com> |
---|---|
To: | Wayne Cuddy <lists-pgsql(at)useunix(dot)net> |
Cc: | PostgreSQL <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: can this be done with a check expression? |
Date: | 2012-08-03 15:50:13 |
Message-ID: | 88520F99-849D-438C-9CCD-F80700636A2A@excoventures.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On Aug 2, 2012, at 7:10 PM, Wayne Cuddy wrote:
> I have a table with 3 columns:
>
> name text
> start_id integer
> end_id integer
>
> start_id and end_id are ranges which must not overlap but can have gaps
> between them. Is it possible to formulate a table check constraint that
> can verify that either id does not fall within an existing range at
> insert time? IE prevent overlaps during insert?
>
> Thanks,
> Wayne
So this answer will not help you for the here-and-now, but Postgres 9.2 is going to be released in the near future (though the beta is available) and contains "range types" which have check constraints on them:
http://www.postgresql.org/docs/9.2/static/rangetypes.html#RANGETYPES-CONSTRAINT
You could formulate a check constraint right now to do the equivalent, albeit it will involve a lot of conditions.
Jonathan
From | Date | Subject | |
---|---|---|---|
Next Message | Wayne Cuddy | 2012-08-03 19:50:53 | Re: can this be done with a check expression? |
Previous Message | Andreas Kretschmer | 2012-08-03 05:40:17 | Re: can this be done with a check expression? |