Notícias
Novos modelos de linguagem da API Serverspace GPT
Serverspace Black Friday
DF
Daniil Fedorov
fevereiro 23, 2025
Atualizado fevereiro 23, 2025

CHECK Constraint

CHECK Constraint é uma restrição no nível da tabela no PostgreSQL que garante que os valores em uma coluna específica (ou várias colunas) atendam a uma condição lógica definida. Ele ajuda a manter a integridade dos dados, impedindo que valores inválidos sejam inseridos no banco de dados.

Como funciona o CHECK Constraint?

Quando os dados são inseridos ou atualizados, o PostgreSQL verifica se a condição especificada na restrição CHECK é atendida. Se o valor não cumprir a condição, a operação INSERT ou UPDATE será rejeitada com um erro.

Sintaxe do CHECK Constraint

A restrição CHECK pode ser definida ao criar uma tabela:

CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
age INT CHECK (age >= 18),
salary DECIMAL(10,2) CHECK (salary > 0)
);

Neste exemplo:

  • age >= 18 – impede a inserção de funcionários com menos de 18 anos.
  • salary > 0 – evita valores nulos ou negativos para o salário.

Também é possível adicionar um CHECK a uma tabela existente:

ALTER TABLE employees ADD CONSTRAINT check_salary_positive CHECK (salary > 0);

Exemplo de Uso

Imagine que temos uma tabela orders onde queremos restringir os valores da coluna status a opções específicas:

CREATE TABLE orders (
id SERIAL PRIMARY KEY,
status TEXT CHECK (status IN ('pending', 'shipped', 'delivered', 'canceled'))
);

Agora, se tentarmos inserir ou atualizar um status com um valor fora da lista permitida, o PostgreSQL retornará um erro.

Vantagens do CHECK Constraint

  • Garantia de integridade dos dados – Controla os valores permitidos em uma coluna.
  • Flexibilidade – Permite definir condições lógicas complexas.
  • Redução de erros no banco de dados – Garante validação direta no banco, sem depender apenas da aplicação.

Limitações e Considerações

  • CHECK não impede valores NULL, a menos que a coluna também tenha uma restrição NOT NULL.
  • Diferente de FOREIGN KEY, CHECK não pode referenciar outras tabelas.
  • Pode impactar a performance ao lidar com grandes volumes de dados, pois cada operação precisa ser validada.

Onde encontrar mais informações?

No Serverspace Knowledge Base, você pode encontrar mais conteúdos sobre PostgreSQL, incluindo configuração de índices, gerenciamento de transações e otimização de desempenho do banco de dados.

Usamos cookies para melhorar sua experiência no Serverspace. Ao continuar a navegar em nosso site, você concorda com o Uso de Cookies e com a Política de Privacidade.