SQL constrângerii de verificare
Constrângerea CHECK este utilizată pentru a limita domeniul de valori care pot fi plasate într-o coloană.
Dacă definiți o constrângere de verificare pe o singură coloană permite numai anumite valori pentru această coloană.
Dacă definiți o constrângere de verificare pe o masă se poate limita valorile în anumite coloane bazate pe valori în alte coloane din rândul.
Constrângerea CHECK SQL pe CREATE TABLE
Următoarele SQL creează o constrângere de verificare pe "P_Id" coloana atunci când "Persons" este creat tabel. Constrângerea de verificare specifică faptul că coloana "P_Id" trebuie să includă numai numere întregi mai mari decât 0.
MySQL:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (P_Id>0)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
Pentru a permite numirea unei constrângeri CHECK, și pentru definirea unei constrângere de verificare pe mai multe coloane, utilizați următoarea sintaxă SQL:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
)
SQL constrângerii de verificare pe ALTER TABLE
Pentru a crea o constrângere de verificare pe "P_Id" coloana atunci când tabela este deja creată, utilizați următoarea SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (P_Id>0)
Pentru a permite numirea unei constrângeri CHECK, și pentru definirea unei constrângere de verificare pe mai multe coloane, utilizați următoarea sintaxă SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
Pentru a deconecta o constrângere de verificare
Pentru a elimina o constrângere de verificare, folosiți următoarele SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT chk_Person
MySQL:
ALTER TABLE Persons
DROP CHECK chk_Person