Ograniczenie CHECK w SQL

Ograniczenie CHECK w SQL

CHECK constraint służy do ograniczania zakresu wartości w kolumnie.

Jeśli zdefiniujesz CHECK constraint dla pojedynczej kolumny, ta kolumna będzie pozwalać tylko na określone wartości.

Jeśli zdefiniujesz CHECK constraint dla tabeli, ten constraint będzie ograniczał wartości w określonych kolumnach.

CHECK constraint w CREATE TABLE SQL

Poniższy SQL tworzy CHECK constraint dla kolumny "Id_P" podczas tworzenia tabeli "Persons". CHECK constraint określa, że kolumna "Id_P" musi zawierać tylko liczby całkowite większe od 0.

My SQL:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Id_P>0)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
Id_P int NOT NULL CHECK (Id_P>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

Jeśli chcesz nazwać ograniczenie CHECK oraz zdefiniować ograniczenia CHECK dla wielu kolumn, użyj poniższego składni SQL:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
)

Ograniczenie CHECK w SQL w poleceniu ALTER TABLE

Jeśli chcesz utworzyć ograniczenie CHECK dla kolumny "Id_P", która już istnieje w tabeli, użyj poniższego SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CHECK (Id_P>0)

Jeśli chcesz nazwać ograniczenie CHECK oraz zdefiniować ograniczenia CHECK dla wielu kolumn, użyj poniższego składni SQL:

MySQL / SQL Server / Oracle / MS Access:

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

Unieważnienie ograniczenia CHECK

Aby unieważnić ograniczenie CHECK, użyj poniższego SQL:

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT chk_Person

MySQL:

ALTER TABLE Persons
DROP CHECK chk_Person