SQL contrainte CHECK
La contrainte CHECK est utilisée pour limiter la plage de valeur qui peut être placé dans une colonne.
Si vous définissez une contrainte CHECK sur une seule colonne, il permet seulement certaines valeurs pour cette colonne.
Si vous définissez une contrainte CHECK sur une table, il peut limiter les valeurs dans certaines colonnes en fonction des valeurs des autres colonnes de la rangée.
SQL contrainte CHECK sur CREATE TABLE
Le SQL suivante crée une contrainte CHECK sur la "P_Id" colonne lorsque le "Persons" table est créée. La contrainte CHECK spécifie que la colonne "P_Id" ne doit inclure 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 permettre nommage d'une contrainte CHECK, et pour 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')
)
SQL contrainte CHECK sur ALTER TABLE
Pour créer une contrainte CHECK sur la "P_Id" colonne lorsque la table est déjà créé, utilisez l'instruction SQL suivante:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (P_Id>0)
Pour permettre nommage d'une contrainte CHECK, et pour 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')
Pour supprimer une contrainte CHECK
Pour supprimer une contrainte CHECK, utilisez l'instruction SQL suivante:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT chk_Person
MySQL:
ALTER TABLE Persons
DROP CHECK chk_Person