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

Я читаю книгу

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

       CREATE TABLE movies
(
    Title TEXT,
    Copies INTEGER
);

ALTER TABLE movies ADD EXCLUDE (title WITH=, copies WITH=);

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

1 ответ

Решение

В чем смысл ограничений исключения?

Это особый тип ограничений, который определяется как серия сравнений столбцов таблицы. Это гарантирует, что не может быть двух разных строк, для которых все сравнения верны.

В (упрощенном) примере, представленном в книге, ограничение не позволяет двум различным строкам иметь одинаковые title и то же самое copies.

Ограничения исключения очень сильны; у них гибкий синтаксис, который может учитывать гораздо более сложные случаи, чем то, что показано в вашей книге. Типичный пример - убедиться, что для таблицы с двумя столбцами временных меток нет перекрытия диапазонов меток времени по строкам.

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

Я не думаю, что такая функция существует в SQL Server. У него есть проверочные ограничения, но он не предлагает такой же набор функций, как ограничения исключения Postgres.

Другие вопросы по тегам