SQL CHECKContraintes


Contrainte SQL CHECK

La contrainte CHECK est utilisée pour limiter la plage de valeurs dans une colonne.

Si vous définissez une contrainte CHECK sur une seule colonne, cette colonne n'autorisera que des valeurs spécifiques.

Si vous définissez une contrainte CHECK sur une table, elle peut limiter les valeurs de certaines colonnes en fonction des valeurs d'autres colonnes de la ligne.


Contrainte SQL CHECK sur CREATE TABLE

Le SQL ci-dessous crée une contrainte CHECK sur la colonne "P_Id" lorsque la table "Persons" est créée. La contrainte CHECK spécifie que la colonne "P_Id" ne doit contenir que des entiers supérieurs à 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)
)

Pour nommer une contrainte CHECK et définir une contrainte CHECK sur plusieurs colonnes, utilisez la syntaxe SQL suivante:

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


Contrainte CHECK SQL sur ALTER TABLE

Lorsque la table a déjà été créée, pour créer une contrainte CHECK sur la colonne "P_Id", utilisez le SQL suivant:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CHECK (P_Id>0)

Pour nommer une contrainte CHECK et définir une contrainte CHECK sur plusieurs colonnes, utilisez la syntaxe SQL suivante:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')


Contrainte DROP CHECK

Pour supprimer une contrainte CHECK, utilisez le SQL suivant :

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT chk_Person

MySQL:

ALTER TABLE Persons
DROP CHECK chk_Person
Autres extensions