SQL - CHECK Constraint

Il vincolo CHECK consente a una condizione di verificare il valore immesso in un record. Se la condizione restituisce false, il record viola il vincolo e non viene inserito nella tabella.

Esempio

Ad esempio, il seguente programma crea una nuova tabella denominata CLIENTI e aggiunge cinque colonne. Qui, aggiungiamo una colonna CONTROLLO con ETÀ, in modo da non poter avere alcun CLIENTE che abbia meno di 18 anni.

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

Se la tabella CUSTOMERS è già stata creata, per aggiungere un vincolo CHECK alla colonna AGE, dovresti scrivere un'istruzione come quella fornita di seguito.

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

Puoi anche utilizzare la seguente sintassi, che supporta anche la denominazione del vincolo in più colonne:

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

DROP a CHECK Constraint

Per eliminare un vincolo CHECK, utilizzare la seguente sintassi SQL. Questa sintassi non funziona con MySQL.

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