SQL CHECK-ограничения


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

Ограничение CHECK используется для ограничения диапазона значений в столбце.

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

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


Ограничение CHECK в SQL при CREATE TABLE

Приведенный ниже SQL создает ограничение CHECK на столбце "P_Id" при создании таблицы "Persons". Ограничение CHECK указывает, что столбец "P_Id" должен содержать только целые числа больше 0.

MySQL:

CREATE TABLE Persons
(
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:

CREATE TABLE Persons
(
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:

CREATE TABLE Persons
(
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:

ALTER TABLE Persons
ADD CHECK (P_Id>0)

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

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')


Удаление ограничения CHECK

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

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT chk_Person

MySQL:

ALTER TABLE Persons
DROP CHECK chk_Person
Другие расширения