Constrângerea CHECK este utilizată pentru a limita intervalul de valori care poate fi plasat într-o coloană.

Dacă definiți o constrângere CHECK pe o singură coloană, aceasta permite doar anumite valori pentru această coloană.

Dacă definiți o constrângere CHECK pe un tabel, aceasta poate limita valorile din anumite coloane pe baza valorilor din alte coloane din rând.

SQL CHECK pe CREATE TABLE

Următorul SQL creează o constrângere CHECK pe coloana „Vârstă” atunci când se creează tabelul „Persoane”. Constrângerea CHECK vă asigură că nu puteți avea nicio persoană sub 18 ani:

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

Pentru a permite denumirea unei constrângeri CHECK și pentru definirea unei constrângeri CHECK pe mai multe coloane, utilizați următoarea sintaxă 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 CHECK pe ALTER TABLE

Pentru a crea o constrângere CHECK pe coloana „Age” când tabela este deja creată, utilizați următorul SQL:

MySQL / SQL Server / Oracle / MS Access:

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

Pentru a permite denumirea unei constrângeri CHECK și pentru definirea unei constrângeri CHECK pe mai multe coloane, utilizați următoarea sintaxă SQL:

MySQL / SQL Server / Oracle / MS Access:

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

DROP a CHECK Constraint

Pentru a renunța la o constrângere CHECK, utilizați următorul SQL:

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;

MySQL:

ALTER TABLE Persons
DROP CHECK CHK_PersonAge;