Provjera ograničenja u SQL-u - Objašnjeno primjerima sintakse MySQL i SQL Server

Ograničenje CHECK koristi se za ograničavanje raspona vrijednosti koji se može smjestiti u stupac.

Ako definirate ograničenje CHECK na jednom stupcu, to omogućuje samo određene vrijednosti za ovaj stupac.

Ako definirate ograničenje CHECK na tablici, to može ograničiti vrijednosti u određenim stupcima na temelju vrijednosti u drugim stupcima u retku.

SQL PROVJERA STVARANJA TABLE

Sljedeći SQL stvara ograničenje CHECK na stupcu "Dob" kada se kreira tablica "Osobe". Ograničenje CHECK osigurava da ne možete imati nijednu osobu mlađu od 18 godina:

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

Da biste omogućili imenovanje ograničenja CHECK i za definiranje ograničenja CHECK na više stupaca, upotrijebite sljedeću sintaksu 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") ); 

SQL PROVJERA ALTER TABLE

Da biste stvorili ograničenje CHECK na stupcu "Age" kada je tablica već kreirana, upotrijebite sljedeći SQL:

MySQL / SQL Server / Oracle / MS Access:

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

Da biste omogućili imenovanje ograničenja CHECK i za definiranje ograničenja CHECK na više stupaca, upotrijebite sljedeću sintaksu SQL:

MySQL / SQL Server / Oracle / MS Access:

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

DROP CHECK Ograničenje

Da biste odustali od ograničenja CHECK, upotrijebite sljedeći SQL:

SQL Server / Oracle / MS Access:

ALTER TABLE Persons DROP CONSTRAINT CHK_PersonAge; 

MySQL:

ALTER TABLE Persons DROP CHECK CHK_PersonAge;