Re: can this be done with a check expression?

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

In response to

Responses

Browse pgsql-sql by date

  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?