SQL - restrição CHECK

A restrição CHECK permite que uma condição verifique o valor que está sendo inserido em um registro. Se a condição for avaliada como falsa, o registro viola a restrição e não é inserido na tabela.

Exemplo

Por exemplo, o programa a seguir cria uma nova tabela chamada CUSTOMERS e adiciona cinco colunas. Aqui, adicionamos uma coluna CHEQUE com IDADE, para que não possa haver CLIENTE com menos de 18 anos.

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 a tabela CUSTOMERS já foi criada, para adicionar uma restrição CHECK à coluna AGE, você escreveria uma instrução como a fornecida abaixo.

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

Você também pode usar a seguinte sintaxe, que também oferece suporte à nomeação da restrição em várias colunas -

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

DROP uma restrição CHECK

Para eliminar uma restrição CHECK, use a seguinte sintaxe SQL. Esta sintaxe não funciona com MySQL.

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