Questions tagged [exclusion-constraint]

Exclusion constraints ensure that if any two rows are compared on the specified columns or expressions using the specified operators, at least one of these operator comparisons will return false or null.

Filter by
Sorted by
Tagged with
0 votes
0 answers
26 views

PostgreSQL Constraint Where Value Mustn't be Present in Another Column

I have the following table in a postgres database (version 13) CREATE TABLE public.links ( head_id int4 NOT NULL, link_id int4 NOT NULL, CONSTRAINT links_pk PRIMARY KEY (head_id, link_id), ...
user avatar
1 vote
1 answer
35 views

How to enforce UNIQUE constraint for sixth normal form in PostgreSQL

I have a table person which I am planing to normalize to the sixth normal form. The table has attributes username, email, and phone. The reason I want to go to the sixth normal form is keeping the ...
user avatar
-1 votes
2 answers
48 views

How to conditionally pick a row based on status value?

I want to select all available and bought packs. An user can open two pages to buy one pack, this results in two rows in the payment table. One gets status 'Pending' and the one that is bought gets ...
user avatar
1 vote
1 answer
70 views

Using postgresql, how to prevent new inserts on varchar column using ^@ / starts_with operator / function?

I'm trying to create a table with a path column. This table should only allow inserting a new path if the new path is neither an ancestor nor a descendant of any already inserted path. i.e. with '/foo/...
user avatar
0 votes
1 answer
27 views

Exclusion constraint for text values [closed]

I have two tables. A client table and a vehicle table, the two are linked in a unit lookup table. My constraint is that a vehicle cannot belong to a client if it already is associated with another ...
user avatar
  • 179
3 votes
0 answers
122 views

Ordering of columns in a GIST index

I am modelling an application where events for factories can be registered. There are usually a small amount of factories (around 500), but each factory can register a large set of events (millions). ...
user avatar
1 vote
1 answer
108 views

Include constraint for daterange type

Here is the table CREATE TABLE date_ranges ( id SERIAL PRIMARY KEY, user_id INTEGER, start_at DATE, end_at DATE, is_exception BOOLEAN ); ALTER TABLE date_ranges ADD CONSTRAINT ...
user avatar
3 votes
1 answer
2k views

How to find out what operator class and access method should be used for an exclusion constraint?

Original goal: create a constraint to ensure that only non-overlapping subnets exist in a particular Postgres table. From reading the docs carefully, I could get as far as this: create table subnets ...
user avatar
  • 528
2 votes
1 answer
510 views

Exclusion constraint generates: ERROR: operator &&(anyrange,anyrange) is not a member of operator family "range_ops"

How come when I try to create an exclusion constraint with GIST, CREATE TABLE foo ( a tsrange, EXCLUDE (a WITH &&) ); ERROR: operator &&(anyrange,anyrange) is not a member of ...
user avatar
  • 55.7k
1 vote
1 answer
596 views

Composite constraint of numrange and boolean

I have a current constraint like this: ALTER TABLE myschema.my_table ADD CONSTRAINT my_constraint EXCLUDE USING gist((<uuidcol>::text) WITH =, numrange(<start>, <end>) WITH &&...
user avatar
1 vote
0 answers
181 views

Non-commutative exclusion constraint?

If I create the following table.. CREATE TABLE foo ( x int ); I can EXCLUDE the following, WHERE x = <a duplicate value> (generic unique constraint) WHERE x = <specific value> (type ...
user avatar
  • 55.7k
0 votes
0 answers
162 views

Performance of table locks vs exclude constraints

Suppose I have a system for reserving vacation properties. One of the tables is reservations. Each reservation has a property_id, a start_date, and an end_date. I want to prevent conflicting ...
user avatar
11 votes
2 answers
3k views

Create a PostgreSQL constraint to prevent unique combination rows

Imagine you have a simple table: name | is_active ---------------- A | 0 A | 0 B | 0 C | 1 ... | ... I need to create a special unique constraint which fails on following situation: ...
user avatar
2 votes
1 answer
1k views

Placing a uniqueness constraint on a date range

I have a table reservation with columns roomno(INTEGER), startdate(DATE), enddate(DATE) with a primary key on (roomno, startdate). How do I place a constraint on the table such that bookings are not ...
user avatar
  • 123
4 votes
1 answer
2k views

Constraint on row value based on values in other rows

Is it possible to have a table with four columns: CREATE TABLE accrual ( add_date date NOT NULL, user_id integer NOT NULL, rate integer NOT NULL, amount numeric(7,3) ); and then ...
user avatar
4 votes
1 answer
952 views

How can I exclude range overlaps if one range may be empty?

Suppose I want to ensure that, for any expected height in feet, I have a single, unambiguous classification. I create this table: CREATE TABLE heights_in_feet( size TEXT NOT NULL, min INTEGER NOT ...
user avatar
15 votes
1 answer
9k views

Uniqueness constraint with date range

Consider a prices table with these columns: id integer primary key product_id integer -- foreign key start_date date not null end_date date not null quantity integer price numeric I'...
user avatar
  • 263
5 votes
1 answer
2k views

Unique constraint to enforce max one null per item

I am using PostgreSQL 9.3. Suppose we are manufacturing some items of certain types, at any moment we are producing at most one item of a certain type. The following table captures our history of ...
user avatar
  • 381
3 votes
1 answer
2k views

Restrict two specific column values from existing at the same time

I have a PostgreSQL example table where at most one row that is not of type 'c' should be allowed. I would appreciate any help creating a constraint that will enforce this. CREATE TABLE example ( ...
user avatar
4 votes
1 answer
416 views

Non-overlapping rectangles constrained to a boundary

I am trying to model placement of parts on a circuit board. Without any meaningful constraints, my basic schema looks like this: create table part ( part_id bigserial primary key, name text ...
user avatar
  • 307
1 vote
1 answer
3k views

Constraint based rules engine

I am evaluating software systems which configure products that tout constraint based versus rules based engines. Can someone explain (with maybe an example or two) to a non-expert what the difference ...
user avatar
  • 11
54 votes
2 answers
29k views

PostgreSQL EXCLUDE USING error: Data type integer has no default operator class

In PostgreSQL 9.2.3 I am trying to create this simplified table: CREATE TABLE test ( user_id INTEGER, startend TSTZRANGE, EXCLUDE USING gist (user_id WITH =, startend WITH &&) ); ...
user avatar