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;