A korlátozás ellenőrzése az SQL-ben - a MySQL és az SQL Server szintaxis példákkal magyarázható

A CHECK megszorítás az oszlopba helyezhető értéktartomány korlátozására szolgál.

Ha CHECK korlátozást határoz meg egyetlen oszlopban, akkor csak bizonyos értékeket engedélyez ennek az oszlopnak.

Ha CHECK korlátozást határoz meg egy táblán, korlátozhatja egyes oszlopok értékeit a sor többi oszlopának értéke alapján.

SQL ELLENŐRZÉS A CREATE TABLE-n

A következő SQL létrehoz egy CHECK korlátozást az „Age” oszlopban a „Persons” tábla létrehozásakor. Az ELLENŐRZÉSI kényszer biztosítja, hogy 18 év alatti személyek ne legyenek:

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

A CHECK korlátozás elnevezésének engedélyezéséhez és a CHECK korlátozás több oszlopban történő meghatározásához használja a következő SQL szintaxist:

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 ELLENŐRZÉS AZ ALTER TÁBLÁZATON

Ha a táblát már létrehozta, akkor az „Élet” oszlopban hozzon létre CHECK korlátozást, használja a következő SQL-t:

MySQL / SQL Server / Oracle / MS Access:

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

A CHECK korlátozás elnevezésének engedélyezéséhez és a CHECK korlátozás több oszlopban történő meghatározásához használja a következő SQL szintaxist:

MySQL / SQL Server / Oracle / MS Access:

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

DROP egy CHECK kényszer

A CHECK korlátozás elvetéséhez használja a következő SQL-t:

SQL Server / Oracle / MS Access:

ALTER TABLE Persons DROP CONSTRAINT CHK_PersonAge; 

MySQL:

ALTER TABLE Persons DROP CHECK CHK_PersonAge;