Ограничение CHECK позволяет определять условие, которому должно удовлетворять вводимое в поле таблицы значение, прежде чем оно будет принято. Любая попытка обновить или заменить значение поля такими, для которых предикат, задаваемый ограничением CHECK, имеет значение ложь, будет отвергаться.
Пример. Создать таблицу STUDENT. На столбец STIPEND наложить ограничение – величина стипендии должна быть не меньше 200:
CREATE TABLE STUDENT
( STUDENT_ID INTEGER PRIMARY KEY,
SURNAME VARCHAR(60) NOT NULL,
NAME VARCHAR(60) NOT NULL,
STIPEND INTEGER CHECK (STIPEND<200),
KURS INTEGER,
CITY VARCHAR(60),
BIRTHDAY DATE,
UNIV_ID INTEGER);
Проверка ограничивающих условий с использованием составных полей
Пример. Создать таблицу STUDENT. На столбец STIPEND наложить ограничение – величина стипендии должна быть не меньше 200 для студентов, живущих в Воронеже:
CREATE TABLE STUDENT
( STUDENT_ID INTEGER PRIMARY KEY,
SURNAME VARCHAR(60) NOT NULL,
NAME VARCHAR(60) NOT NULL,
STIPEND INTEGER,
KURS INTEGER,
CITY VARCHAR(60),
BIRTHDAY DATE,
UNIV_ID INTEGER UNIQUE,
CHECK (STIPEND<200 AND CITY=’Воронеж’));
Или
CREATE TABLE STUDENT
( STUDENT_ID INTEGER PRIMARY KEY,
SURNAME VARCHAR(60) NOT NULL,
NAME VARCHAR(60) NOT NULL,
STIPEND INTEGER,
KURS INTEGER,
CITY VARCHAR(60),
BIRTHDAY DATE,
UNIV_ID INTEGER UNIQUE,
CONSTRAINTSTUD_CHECKCHECK (STIPEND<200 AND CITY=’Воронеж’));