SQL CHECK
CHECK
CHECK используется для ограничения диапазона значений, который может быть помещен в столбец.
Если вы определяете контрольное ограничение для одного столбца, оно допускает только определенные значения для этого столбца.
Если вы определяете контрольное ограничение для таблицы, оно может ограничивать значения в определенных столбцах на основе значений в других столбцах строки.
CHECK в CREATE TABLE
Следующий SQL создает контрольное ограничение для столбца "Age" при создании таблицы "Persons". Ограничение проверки гарантирует, что вы не можете иметь ни одного человека моложе 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)
);
Чтобы разрешить именование контрольного ограничения и определить контрольное ограничение для нескольких столбцов, используйте следующий синтаксис SQL:
MySQL / SQL Server / Oracle / MS Access:
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')
);
CHECK в ALTER TABLE
Чтобы создать контрольное ограничение для столбца "Age", когда таблица уже создана, используйте следующий SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (Age>=18);
Чтобы разрешить именование контрольного ограничения и определить контрольное ограничение для нескольких столбцов, используйте следующий синтаксис SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
Ограничение CHECK с DROP
Чтобы удалить ограничение CHECK, используйте следующий SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
MySQL:
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;