SQL - Contrainte CHECK

La contrainte CHECK permet à une condition de vérifier la valeur saisie dans un enregistrement. Si la condition est évaluée à false, l'enregistrement enfreint la contrainte et n'est pas entré dans la table.

Exemple

Par exemple, le programme suivant crée une nouvelle table appelée CUSTOMERS et ajoute cinq colonnes. Ici, nous ajoutons une colonne CHECK with AGE, de sorte que vous ne pouvez avoir aucun CLIENT de moins de 18 ans.

CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL CHECK (AGE >= 18),
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);

Si la table CUSTOMERS a déjà été créée, pour ajouter une contrainte CHECK à la colonne AGE, vous écrirez une instruction comme celle donnée ci-dessous.

ALTER TABLE CUSTOMERS
   MODIFY AGE INT NOT NULL CHECK (AGE >= 18 );

Vous pouvez également utiliser la syntaxe suivante, qui prend également en charge l'attribution d'un nom à la contrainte dans plusieurs colonnes -

ALTER TABLE CUSTOMERS
   ADD CONSTRAINT myCheckConstraint CHECK(AGE >= 18);

DROP a CHECK Contrainte

Pour supprimer une contrainte CHECK, utilisez la syntaxe SQL suivante. Cette syntaxe ne fonctionne pas avec MySQL.

ALTER TABLE CUSTOMERS
   DROP CONSTRAINT myCheckConstraint;
sql-rdbms-concepts.htm