Contrainte SQL CHECK
Contrainte SQL CHECK
La CHECK
contrainte est utilisée pour limiter la plage de valeurs qui peut être placée dans une colonne.
Si vous définissez une CHECK
contrainte sur une colonne, seules certaines valeurs seront autorisées pour cette colonne.
Si vous définissez une CHECK
contrainte sur une table, elle peut limiter les valeurs de certaines colonnes en fonction des valeurs d'autres colonnes de la ligne.
SQL CHECK sur CREATE TABLE
Le SQL suivant crée une CHECK
contrainte sur la colonne "Age" lors de la création de la table "Persons". La CHECK
contrainte garantit que l'âge d'une personne doit être de 18 ans ou plus :
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)
);
Pour autoriser la dénomination d'une CHECK
contrainte et pour définir une
CHECK
contrainte sur plusieurs colonnes, utilisez la syntaxe SQL suivante :
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')
);
VÉRIFICATION SQL sur ALTER TABLE
Pour créer une CHECK
contrainte sur la colonne "Age" alors que la table est déjà créée, utilisez le SQL suivant :
MySQL/SQL Server/Oracle/MS Access :
ALTER TABLE Persons
ADD CHECK (Age>=18);
Pour autoriser la dénomination d'une CHECK
contrainte et pour définir une
CHECK
contrainte sur plusieurs colonnes, utilisez la syntaxe SQL suivante :
MySQL/SQL Server/Oracle/MS Access :
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
DROP une contrainte CHECK
Pour supprimer une CHECK
contrainte, utilisez le SQL suivant :
SQL Server/Oracle/MS Access :
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
MySQL :
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;