Описание тега exclusion-constraint

Ограничение исключения - это особый тип ограничения для PostgreSQL. По сути, это обобщение ограничения уникальности, которое позволяет дать более детальное определение "уникальности". Это можно использовать, например, для определения ограничений, предотвращающих перекрытие диапазонов дат.
1 ответ

Postgresql Исключение с мягко удаленными строками

Я пытаюсь выполнить ограничение PostgreSQL на следующую таблицу: CREATE TABLE contracts ( id bigint NOT NULL, startdate date NOT NULL, enddate date NOT NULL, price numeric(19,2) NOT NULL, deleted boolean NOT NULL, supplier_id bigint NOT NULL, ) Соде…
22 янв '19 в 10:02
3 ответа

Предотвращение смежных / перекрывающихся записей с помощью EXCLUDE в PostgreSQL

Я создаю базу данных, которая хранит произвольные диапазоны даты / времени в PostgreSQL 9.2.4. Я хочу наложить на эту базу данных ограничение, которое заставляет диапазоны даты / времени быть не перекрывающимися и не смежными (поскольку два смежных …
1 ответ

Невозможно добавить ограничение исключения в таблицу

Я не могу создать исключающий индекс с этой схемой. create table foo_bar( foo_id text primary key, bar char(3) not null, created_at timestamptz not null default current_timestamp, system_period tstzrange not null default tstzrange(current_timestamp,…
28 ноя '18 в 22:16
1 ответ

Что означает ограничение исключения `EXCLUDE USING gist (c WITH &&) '?

Из документа PostgreSQL Ограничения исключения гарантируют, что, если любые две строки сравниваются в указанных столбцах или выражениях с использованием указанных операторов, по крайней мере одно из этих сравнений операторов вернет false или null. С…
09 июл '18 в 13:43
1 ответ

Исключить ограничение для многих таблиц?

Рассмотрим следующую таблицу: todos: id | floor_start | floor_end ----+-------------+------------- 1 | 10 | 20 2 | 20 | 30 3 | 30 | 40 4 | 35 | 45 чтобы предотвратить 2 лифта на одном этаже, я могу пойти с: EXCLUDE USING gist(int4range(start,end) wi…
15 мар '19 в 07:12
1 ответ

Запретить перекрывающиеся значения в столбце CIDR в PostgreSQL

Существует ли ограничение или какая-либо другая функция PostgreSQL, которая не позволяет столбцам CIDR иметь перекрывающиеся значения? Например: 192.168.1.0/24 а также 192.168.1.1/32 Они не могут существовать вместе, потому что 192.168.1.1/32 содерж…
21 мар '19 в 15:19
1 ответ

Ограничение исключения, позволяющее перекрывать границы

Я попытался установить ограничение PostgreSQL, чтобы не было совпадений между двумя интервалами дат. Мое требование заключается в том, что дата c_from за одну запись может быть таким же, как c_until на другую дату. Например: "12/12/2019 12/12/2019" …
05 апр '19 в 19:20
1 ответ

Ограничение Postgresql EXCLUDE не вызывает ON CONFLICT при вставке

Я определил эту таблицу: CREATE TABLE market.price_history ( item_id bigint NOT NULL, valid_time tstzrange DEFAULT tstzrange(now(), 'infinity'), sale_price money NOT NULL, promo_code bool NOT NULL DEFAULT false, EXCLUDE USING gist(item_id WITH =, va…
1 ответ

Как использовать ON CONFLICT с ограничением исключения?

Например : индекс по userid, sdate, edate userid sdate edate 001 2019-01-01 2019-01-30 если я вставлю новые данные, такие как: userid sdate edate 001 2019-01-03 2019-01-20 or 001 2019-01-13 2019-02-10 or 001 2019-02-01 2019-02-15 Я попробовал ниже, …
30 апр '19 в 10:52
4 ответа

Рекурсивный SQL-запрос с диапазонами Postgres для определения доступности

Я следил за этим сообщением в блоге: https://info.crunchydata.com/blog/range-types-recursion-how-to-search-availability-with-postgresql CREATE TABLE travels ( id serial PRIMARY KEY, travel_dates daterange NOT NULL, EXCLUDE USING spgist (travel_dates…
18 фев '20 в 08:56
1 ответ

Postgres: лучший способ избежать перекрытия диапазонов с другими условиями

Упрощенная таблица соединений MN CREATE TABLE dummy ( fkey1 int, /* omitting FK clause */ fkey2 int, /* could also separate begin and end dates */ effective_dates_of_assignment daterange, EXCLUDE /* WHAT GOES HERE?? */ ) Я хочу очевидное правило иск…
15 июн '20 в 18:48
1 ответ

Ограничения исключения PostgreSQL в битемпоральной настройке?

В настоящее время я работаю с битемпоральным приложением, которое хранит записи данных с использованием 4 временных меток: Valid_from, Valid_to Registration_from, Registration_to Первые два состояния, когда данная запись valid_from а также valid_to,…
1 ответ

Ограничение количества строк таблицы, соответствующих определенному условию, с использованием ограничения исключения Postgres?

Если у меня есть схема базы данных Postgresql для такой таблицы шин (у пользователя много шин): user_id integer description text size integer color text created_at timestamp и я хочу ввести ограничение, которое гласит, что "у пользователя может быть…
06 мар '20 в 01:03
1 ответ

Как обеспечить записи с неперекрывающимися временными диапазонами?

Мне нужно убедиться, что моя база данных содержит только записи, в которых два или более столбца уникальны. Этого легко добиться с помощьюUNIQUE ограничение на эти столбцы. В моем случае мне нужно запретить дублирование только для перекрывающихся вр…
2 ответа

Как получить уникальные значения из 2 столбцов в PostgreSQL

У меня есть столбец "id_a" и столбец "id_b". "id_a" - это целочисленный [] тип. "id_b" - это тип int. Мне нужно найти способ проверить, что больше нет значений id_a с тем же id_b For Example: id_a {3,4,5} id_b 18 Другие примеры: ERROR: id_a{3,4,5} i…
1 ответ

Что такое ограничение исключения в PostgreSQL? Каков соответствующий термин (и образец сценария SQL) в Microsoft SQL Server?

Я читаю книгу Ограничение исключения CREATE TABLE movies ( Title TEXT, Copies INTEGER ); ALTER TABLE movies ADD EXCLUDE (title WITH=, copies WITH=); В чем смысл ограничений исключения? Каков соответствующий термин (и образец сценария SQL) в Microsof…
1 ответ

Как наложить это ограничение исключения?

У меня есть таблица "ключ-значение". CREATE TABLE keyvalues ( key TEXT NOT NULL, value TEXT ) Я хочу наложить ограничение: если в ключе есть запись со значением NULL, у него не может быть других записей. Как я могу это сделать? Чтобы уточнить: я хоч…
18 фев '21 в 21:21
1 ответ

Ограничение исключения Django Postgres с ManyToManyField

Я хотел бы использовать ограничение исключения Django с ManyToManyField. К сожалению, пока мои усилия были тщетными. Это моя модель назначения: из django.contrib.postgres.constraints импорт ExclusionConstraint из django.contrib.postgres.fields импор…
19 мар '21 в 03:21
2 ответа

Ограничение исключения Postgres при вставке / обновлении

У меня есть такая таблица Table "public.foo" Column | Type | Collation | Nullable | Default ----------+---------+-----------+----------+------------------------------------- foo_id | integer | | not null | nextval('foo_foo_id_seq'::regclass) bar_id …
0 ответов

Условное ограничение UNIQUE для таблицы? [дубликат]

У меня есть такая таблица: CREATE TABLE mitg.tbl_gch_customers ( pe character varying(10)NOT NULL, name character varying NOT NULL, city character varying, address character varying NOT NULL, state character varying, zip character varying , country …