🧚 Ei! O Beekeeper Studio é uma GUI de banco de dados rápida, moderna e open source Download
6 de julho de 2024 Por Matthew Rathbone

Para remover uma constraint no PostgreSQL, use o comando ALTER TABLE seguido da
cláusula DROP CONSTRAINT, especificando o nome da constraint a ser
removida. Tenha cuidado, pois isso pode causar problemas de integridade dos dados.

Sintaxe básica:

ALTER TABLE table_name
DROP CONSTRAINT constraint_name;

Tipos de constraints no PostgreSQL

Antes de aprender a remover constraints, é bom conhecer os tipos mais comuns disponíveis:

  • Primary Key
  • Foreign Key
  • Unique
  • Check

Removendo uma constraint de chave primária

Uma chave primária identifica de forma única cada registro em uma tabela.

Exemplo:

Digamos que temos uma tabela, users:

CREATE TABLE users (
    user_id serial PRIMARY KEY,
    username VARCHAR (50) UNIQUE NOT NULL
);

Para remover a constraint de chave primária:

ALTER TABLE users
DROP CONSTRAINT users_pkey;

Saída esperada:

ALTER TABLE

Neste caso, users_pkey é o nome da constraint que você quer remover. Você pode descobrir o nome da constraint usando o comando \d no terminal psql com o nome da tabela cujas constraints você quer ver, ou visualizando-o na aba Indexes do Beekeeper Studio, que mostra os detalhes da tabela, incluindo os nomes das constraints.

Removendo uma constraint de chave estrangeira

Chaves estrangeiras garantem a integridade referencial entre duas tabelas. Veja como remover uma constraint de chave estrangeira.

Exemplo:

Considere duas tabelas, orders e customers:

CREATE TABLE customers (
    customer_id serial PRIMARY KEY,
    customer_name VARCHAR (100) NOT NULL
);

CREATE TABLE orders (
    order_id serial PRIMARY KEY,
    order_date DATE NOT NULL,
    customer_id INT,
    CONSTRAINT fk_customer
        FOREIGN KEY(customer_id) 
        REFERENCES customers(customer_id)
);

Para remover a constraint de chave estrangeira fk_customer:

ALTER TABLE orders
DROP CONSTRAINT fk_customer;

Saída esperada:

ALTER TABLE

Veja Como remover uma constraint de chave estrangeira para saber mais.

Removendo uma constraint unique

Constraints unique garantem que todos os valores de uma coluna sejam diferentes. Remover uma constraint unique é parecido com remover as outras constraints.

Exemplo:

Dada a tabela users:

CREATE TABLE users (
    user_id serial PRIMARY KEY,
    username VARCHAR (50) UNIQUE NOT NULL
);

Para remover a constraint unique da coluna username:

ALTER TABLE users
DROP CONSTRAINT users_username_key;

Saída esperada:

ALTER TABLE

Veja Criando constraints unique no PostgreSQL

Removendo uma constraint check

Constraints check garantem a integridade de domínio limitando os valores que podem ser inseridos em uma coluna.

Exemplo:

Suponha que temos uma tabela products:

CREATE TABLE products (
    product_id serial PRIMARY KEY,
    price DECIMAL (10, 2) NOT NULL,
    CONSTRAINT price_check CHECK (price > 0)
);

Para remover a constraint check price_check:

ALTER TABLE products
DROP CONSTRAINT price_check;

Saída esperada:

ALTER TABLE

Os dados não são afetados

Vale lembrar que, ao remover uma constraint, os dados da tabela não são afetados. A constraint é simplesmente removida, e você poderá inserir ou atualizar dados na tabela sem precisar respeitar as constraints que existiam antes.

Remover constraints pode causar problemas de integridade

É importante ter cuidado ao remover constraints, pois isso pode causar problemas de integridade dos dados se elas existiam por um motivo. Por exemplo, se você remover uma constraint de chave primária, pode acabar com várias linhas na tabela com os mesmos valores na coluna da chave primária, o que pode causar problemas ao consultar ou atualizar os dados da tabela.

Por isso, é sempre uma boa ideia revisar com atenção seus dados e as constraints existentes antes de remover qualquer constraint do seu banco de dados. Considere também o possível impacto em aplicações ou processos que dependem dos dados da tabela antes de prosseguir com a remoção.

Conclusão

Remover constraints no PostgreSQL envolve usar o comando ALTER TABLE seguido de DROP CONSTRAINT. Cada tipo de constraint (primary key, foreign key, unique e check) pode ser removido especificando seu nome. Tenha cuidado ao fazer isso, pois pode causar problemas de integridade dos dados se a constraint existia por um motivo válido. Saber gerenciar constraints de forma eficaz permite manter e evoluir o schema do seu banco de dados ao longo do tempo.

Beekeeper Studio é um cliente de banco de dados gratuito e open source

A melhor ferramenta de consultas e edição de SQL que já usei. Tem tudo o que preciso para gerenciar meu banco de dados. - ⭐⭐⭐⭐⭐ Mit

O Beekeeper Studio é rápido, intuitivo e fácil de usar. Ele suporta vários bancos de dados e funciona muito bem no Windows, Mac e Linux.

A versão do Beekeeper para Linux tem 100% dos recursos, sem atalhos e sem concessões.

O que os usuários dizem sobre o Beekeeper Studio

★★★★★
"O Beekeeper Studio substituiu completamente meu antigo fluxo de trabalho com SQL. É rápido, intuitivo e torna o trabalho com banco de dados agradável de novo."
— Alex K., Desenvolvedor de banco de dados
★★★★★
"Já testei muitas GUIs de banco de dados, mas o Beekeeper encontra o equilíbrio perfeito entre recursos e simplicidade. Simplesmente funciona."
— Sarah M., Engenheira Full Stack

Pronto para melhorar seu fluxo de trabalho com SQL?

download Baixe grátis