SQL - Ограничение CHECK

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

SQL CHECK на CREATE TABLE

Следующий SQL создает ограничение CHECK в столбце «age», когда создается таблица «users». Ограничение CHECK гарантирует, не может быть пользователя с возрастом старше 60 лет:

CREATE TABLE users (
    user_id int NOT NULL,
    name varchar(255) NOT NULL,
    fullname varchar(255),
    age int,
    CHECK (age>=60)
);

Чтобы разрешить именовать ограничение CHECK и определить ограничение CHECK для нескольких столбцов, используйте следующий синтаксис SQL:

CREATE TABLE users (
    user_id int NOT NULL,
    name varchar(255) NOT NULL,
    fullname varchar(255),
    age int,
    balance int,
    CONSTRAINT CHK_Users CHECK (age>=60 AND balance = 500)
);

SQL CHECK на ALTER TABLE

Чтобы создать ограничение CHECK в столбце «age», когда таблица уже создана, используйте следующее:

ALTER TABLE users
ADD CHECK (age>=60);

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

ALTER TABLE users
ADD CONSTRAINT CHK_UsersAge CHECK (age>=60 AND country='Spain');

DROP a CHECK

Чтобы удалить ограничение CHECK, используйте следующий SQL:

ALTER TABLE users
DROP CHECK CHK_UsersAge;