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