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