Kontroller begrænsning i SQL - Forklaret med MySQL og SQL Server-syntakseksempler

CHECK-begrænsningen bruges til at begrænse det værdiområde, der kan placeres i en kolonne.

Hvis du definerer en CHECK-begrænsning på en enkelt kolonne, tillader den kun visse værdier for denne kolonne.

Hvis du definerer en CHECK-begrænsning på en tabel, kan den begrænse værdierne i bestemte kolonner baseret på værdier i andre kolonner i rækken.

SQL CHECK på CREATE TABLE

Følgende SQL opretter en CHECK-begrænsning i kolonnen "Alder", når tabellen "Personer" oprettes. CHECK-begrænsningen sikrer, at du ikke kan have nogen person under 18 år:

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) ); 

For at tillade navngivning af en CHECK-begrænsning og til at definere en CHECK-begrænsning på flere kolonner skal du bruge følgende SQL-syntaks:

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") ); 

SQL CHECK på ALTER TABLE

For at oprette en CHECK-begrænsning i kolonnen "Alder", når tabellen allerede er oprettet, skal du bruge følgende SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons ADD CHECK (Age>=18); 

For at tillade navngivning af en CHECK-begrænsning og til at definere en CHECK-begrænsning på flere kolonner skal du bruge følgende SQL-syntaks:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City="Sandnes"); 

DROP en CHECK-begrænsning

Brug følgende SQL for at droppe en CHECK-begrænsning:

SQL Server / Oracle / MS Access:

ALTER TABLE Persons DROP CONSTRAINT CHK_PersonAge; 

MySQL:

ALTER TABLE Persons DROP CHECK CHK_PersonAge;