A constraint CHECK é utilizada para criar regras de validação nos dados inseridos em uma tabela.
Ela permite definir condições que devem ser atendidas antes que um registro seja salvo no banco de dados.
| Campo | Regra CHECK |
|---|---|
| Idade | Deve ser maior ou igual a 18 |
| Salário | Não pode ser negativo |
| Status | Apenas valores permitidos |
| Quantidade | Deve ser maior que zero |
CREATE TABLE tabela (
campo INT,
CHECK (condição)
);
Criando uma tabela de usuários:
CREATE TABLE usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100),
idade INT,
CHECK (idade >= 18)
);
O banco aceitará somente usuários com idade igual ou superior a 18 anos.
INSERT INTO usuarios
(nome, idade)
VALUES
('João', 15);
Podemos limitar valores aceitos em uma coluna.
CREATE TABLE pedidos (
id INT PRIMARY KEY,
status VARCHAR(20),
CHECK (
status IN ('Pendente',
'Pago',
'Cancelado')
)
);
CREATE TABLE produtos (
id INT PRIMARY KEY,
preco DECIMAL(10,2),
CHECK (preco > 0)
);
O preço nunca poderá receber valor zero ou negativo.
ALTER TABLE produtos
ADD CONSTRAINT preco_valido
CHECK (preco > 0);
ALTER TABLE produtos
DROP CHECK preco_valido;
| CHECK | NOT NULL |
|---|---|
| Valida regras | Exige preenchimento |
| Controla valores permitidos | Impede valores vazios |
| Exemplo: idade >= 18 | Exemplo: nome obrigatório |
| Sistema | Uso do CHECK |
|---|---|
| Loja Virtual | Quantidade maior que zero |
| Banco | Saldo permitido |
| Empresa | Faixa salarial |
| Sistema Escolar | Notas entre 0 e 10 |