IT-словарь › Базы данных › Ограничение исключения (exclusion constraint)

Ограничение исключения (exclusion constraint)

Базы данных Svenska → Обновлено: 2026-10-19

Обобщение уникальности: вместо требования, чтобы две строки не содержали одно значение, можно потребовать, чтобы они не пересекались, не накладывались и не лежали слишком близко.

Уникальный индекс — частный случай, где оператор оказывается равенством. PostgreSQL позволяет выбрать любой оператор, поддерживаемый типом индекса, и это открывает условия, которые иначе нельзя выразить декларативно. Хрестоматийный пример — бронирование: EXCLUDE USING gist (room WITH =, during WITH &&) говорит, что никакие две строки не могут иметь одну комнату и одновременно пересекающиеся промежутки времени. Альтернатива в приложении — сначала спросить, свободен ли слот, и затем записать; это состояние гонки, которое дожидается достаточного трафика. Для сочетания равенства по обычным столбцам и пересечения по диапазонам нужно расширение btree_gist.

← Назад к словарю