SQL CHECK Ограничение
Ограничение проверки SQL
Ограничение CHECK используется для ограничения диапазона значений, которые могут быть помещены в столбец.
Если задать ограничение CHECK для одного столбца, он допускает только определенные значения для этого столбца.
При определении ограничения CHECK для таблицы он может ограничивать значения в определенных столбцах, основываясь на значениях в других столбцах в строке.
Проверка SQL на создание таблицы
Следующий SQL создает ограничение CHECK в столбце "Age" при создании таблицы "лица". Проверка ограничение гарантирует, что вы не можете иметь любое лицо моложе 18 лет:
MySQL:
CREATE TABLE Persons
(
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CHECK (Age>=18)
);
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int CHECK (Age>=18)
);
Чтобы разрешить именование ограничения CHECK и определить ограничение CHECK для нескольких столбцов, используйте следующий синтаксис SQL:
MySQL/SQL Server/Oracle/MS доступа:
CREATE TABLE Persons
(
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255),
CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes')
);
Проверка SQL на изменение таблицы
Чтобы создать ограничение CHECK в столбце "Age", когда таблица уже создана, используйте следующий код SQL:
MySQL/SQL Server/Oracle/MS доступа:
ALTER TABLE Persons
ADD CHECK (Age>=18);
Чтобы разрешить именование ограничения CHECK и определить ограничение CHECK для нескольких столбцов, используйте следующий синтаксис SQL:
MySQL/SQL Server/Oracle/MS доступа:
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
Удалить ограничение CHECK
Чтобы удалить ограничение CHECK, используйте следующий код SQL:
SQL Server/Oracle/MS доступ:
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
MySQL:
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;