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;