Руководство по SQL. Констрейнт CHECK.

Констрейнт CHECK позволяет нам использовать условие для проверки значения, которое пытаются добавить в запись. Если условие ложно, что констрейнт выдаст ошибку и запись не будет добавлена в таблицу базы данных (далее – БД).

Пример:

Предположим, что у нас есть таблица developers, в которую мы хотим добавить 10 записей. И нам необходимо проверить, чтобы опыт работы разработчиков был не менее 3, таким образом мы можем ограничить разработчиков, опыт работы которых менее трёх лет.


CREATE TABLE developers(
       ID   INT               NOT NULL,
       NAME VARCHAR (100)     NOT NULL,
       SPECIALTY VARCHAR(100) NOT NULL,
       EXPERIENCE INT         NOT NULL CHECK (EXPERIENCE >= 3),       
       SALARY  INT            NOT NULL,
       PRIMARY KEY (ID)
);

Если таблица developers уже существует, то для того, чтобы добавить констрейнт CHECK в RDBMS MySQL, нам необходимо использовать следующую команду:


ALTER TABLE developers
   MODIFY EXPERIENCE INT NOT NULL CHECK (EXPERIENCE >= 3 );

Мы также можем применить данный констрейнт к нескольким полям, используя следующий синтаксис SQL в той же RDBMS:


ALTER TABLE developers
   ADD CONSTRAINT someCheck CHECK(EXPERIENCE >= 3);

Для того, чтобы удалить констрейнт CHECK в той же RDBMS нам необходимо использовать команду, указанную ниже:


ALTER TABLE developers
   DROP CONSTRAINT someCheck;

На этом мы заканчиваем изучение констрейнта CHECK.