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;