Introdução
Adicionar uma chave primária a uma tabela existente no PostgreSQL é uma tarefa que administradores de banco de dados e desenvolvedores realizam para garantir a integridade dos dados e otimizar o desempenho do banco. Este tutorial mostra o passo a passo para adicionar uma chave primária a uma tabela existente no PostgreSQL, explicando os comandos SQL necessários e os cuidados a tomar.
Pré-requisitos
- Acesso a um banco de dados PostgreSQL
- Privilégios suficientes para alterar a estrutura de tabelas
- Conhecimento básico de SQL e de conceitos de banco de dados
Entendendo chaves primárias
Uma chave primária é uma coluna ou um grupo de colunas usado para identificar de forma única cada linha de uma tabela. Ela deve conter valores únicos e não pode conter valores NULL. Uma tabela pode ter apenas uma chave primária.
Passo 1: verifique a estrutura atual da tabela
Antes de adicionar uma chave primária, confira a estrutura atual da tabela para confirmar que ela ainda não tem uma e decidir qual(is) coluna(s) pode(m) servir como chave.
Você pode fazer isso de duas formas: pela linha de comando ou visualmente no Beekeeper Studio.
Opção 1 — Usando o psql
-- Replace 'your_table' with your table name
\d your_table
Isso exibe as colunas, os índices e as constraints da tabela diretamente no psql.
Opção 2 — Usando o Beekeeper Studio
Clique com o botão direito na sua tabela no Beekeeper Studio e selecione View Structure para ver todas as colunas, índices e constraints visualmente.

Passo 2: escolha a coluna adequada
Escolha uma coluna que com certeza seja única para cada linha. Se essa coluna não existir, talvez você precise criar uma nova coluna ou usar uma combinação de colunas para formar uma chave composta.
Passo 3: adicione uma chave primária
Chave primária de coluna única
Se você escolher uma única coluna que identifica de forma única cada linha, e estiver conectado ao banco de dados correto, pode usar a seguinte sintaxe SQL:
-- Replace 'your_table' and 'column_name' with your actual table name and column name
ALTER TABLE your_table
ADD PRIMARY KEY (column_name);
Por exemplo, se você quiser adicionar uma chave primária a uma tabela chamada customer que tem as colunas customer_id, first_name e last_name, pode usar o seguinte comando ALTER TABLE:
ALTER TABLE customer ADD PRIMARY KEY (customer_id);
Isso cria uma chave primária na coluna customer_id.
Como adicionar uma chave primária composta a uma tabela existente
Como alternativa, você pode criar uma chave primária composta, formada por várias colunas, assim:
ALTER TABLE customer ADD PRIMARY KEY (first_name, last_name);
Isso cria uma chave primária formada pelas colunas first_name e last_name.
Passo 4: verifique a nova chave primária
Depois de adicionar a chave primária, é importante verificar se ela foi aplicada corretamente à tabela.
-- Check the constraints on the table to confirm the primary key exists
SELECT conname, contype
FROM pg_constraint
WHERE conrelid = 'your_table'::regclass;
Se você prefere usar uma GUI, o Beekeeper Studio exibe automaticamente um ícone de chave ao lado da coluna primária na aba Structure assim que a constraint é adicionada.
Saída esperada usando customer
conname | contype
------------------------------+---------
customer_pkey | p
customer_support_rep_id_fkey | f
contype p indica uma constraint de chave primária.
Cuidados ao adicionar uma chave primária
- Unicidade dos dados: garanta que a(s) coluna(s) que você vai transformar em chave primária tenha(m) dados únicos em todas as linhas.
- Desempenho: adicionar uma chave primária em tabelas grandes pode consumir muitos recursos e levar tempo. Considere janelas de manutenção para tabelas grandes.
- Integridade dos dados: depois que a constraint de chave primária é adicionada, qualquer operação de insert ou update que tente inserir valores duplicados resultará em erro.
Resumo
Adicionar uma chave primária a uma tabela existente no PostgreSQL ajuda a manter a integridade dos dados e a melhorar o desempenho.
Seja com SQL na linha de comando ou com um fluxo visual, ferramentas como o Beekeeper Studio facilitam inspecionar seu schema, verificar novas constraints e evitar erros.
Precisa verificar sua sintaxe SQL antes de executar? Experimente nosso SQL Syntax Checker gratuito — e, quando estiver pronto para aplicar as alterações, abra seu banco de dados no Beekeeper Studio para ver os resultados na hora.
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.
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."
"Já testei muitas GUIs de banco de dados, mas o Beekeeper encontra o equilíbrio perfeito entre recursos e simplicidade. Simplesmente funciona."