Para renomear uma tabela no PostgreSQL, você usa a instrução ALTER TABLE seguida da cláusula RENAME TO.
Antes de continuar lendo, queria apresentar a nossa GUI open source para PostgreSQL, o Beekeeper Studio. Você pode renomear uma tabela clicando nela com o botão direito na barra lateral, e o uso com PostgreSQL é gratuito: baixe aqui.
Sintaxe
ALTER TABLE old_table_name RENAME TO new_table_name;
Exemplo
Suponha que você tenha uma tabela chamada customers e queira renomeá-la para clients. O comando SQL seria:
ALTER TABLE customers RENAME TO clients;
Depois de executar o comando acima, a tabela customers será renomeada para clients. Você pode verificar a renomeação consultando o information_schema ou simplesmente listando todas as tabelas com \d:
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'public';
Saída esperada:
table_name
--------------
clients
other_table
Renomeando tabelas com dependências
Ao renomear uma tabela, é importante considerar as dependências existentes, como chaves estrangeiras, índices ou triggers. O PostgreSQL deve lidar com elas automaticamente, atualizando as referências à tabela renomeada.
Exemplo com chave estrangeira
Suponha que a tabela orders tenha uma chave estrangeira que referencia a tabela customers:
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
customer_id INT REFERENCES customers(customer_id)
);
Quando você renomeia customers para clients, o PostgreSQL atualiza automaticamente a referência da chave estrangeira:
ALTER TABLE customers RENAME TO clients;
Verificação
Para garantir que a chave estrangeira ainda funciona, você pode executar uma instrução INSERT simples:
INSERT INTO clients (customer_id) VALUES (1);
INSERT INTO orders (customer_id) VALUES (1);
Se a referência da chave estrangeira não tivesse sido atualizada, o segundo INSERT falharia. Se ele funcionar, significa que o PostgreSQL atualizou a referência corretamente.
Renomeando uma tabela em um schema
Se a sua tabela estiver em um schema específico, você precisa incluir o schema no comando ALTER TABLE.
Exemplo
Considere uma tabela sales.customers dentro do schema sales:
ALTER TABLE sales.customers RENAME TO clients;
A tabela sales.customers agora é sales.clients. Você pode verificar isso listando as tabelas do schema sales:
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'sales';
Saída esperada
table_name
-----------
clients
other_table
Usando o Beekeeper Studio
Renomear uma tabela no Beekeeper Studio é uma tarefa simples:
- Conecte-se ao seu banco de dados PostgreSQL usando o Beekeeper Studio.
- No painel esquerdo, expanda o schema que contém a tabela e você verá uma lista de tabelas.
- Clique com o botão direito na tabela que deseja renomear e escolha a opção
rename table. - Digite o novo nome da tabela e pressione Enter.
O Beekeeper Studio cuida do resto, enviando o comando SQL apropriado ao seu banco de dados PostgreSQL.
Considerações e boas práticas
-
Nomes de índices e constraints: embora o PostgreSQL atualize automaticamente dependências como chaves estrangeiras, ele não renomeia índices nem constraints. Se os nomes dos seus índices ou constraints incluírem o nome antigo da tabela, talvez seja necessário renomeá-los manualmente.
-
Permissões: renomear uma tabela não afeta suas permissões. Os usuários que tinham acesso à tabela antiga terão o mesmo acesso à tabela renomeada.
-
Dependências de views: se alguma view depender da tabela, ela continuará funcionando após a renomeação, mas talvez você queira revisá-la e atualizá-la para maior clareza.
Conclusão
Renomear tabelas no PostgreSQL é uma operação simples, mas importante. Seja trabalhando com tabelas em schemas diferentes ou com dependências, o PostgreSQL conduz o processo sem complicações, garantindo que todas as referências sejam atualizadas corretamente. Seguindo boas práticas e entendendo como a renomeação funciona, você mantém a integridade e a organização do seu banco de dados.
Outros artigos que você pode gostar:
O Beekeeper Studio é uma GUI para PostgreSQL gratuita e open source
Este é o cliente PostgreSQL que eu estava procurando! A interface é o que o diferencia: limpa, intuitiva e poderosa. Adeus, PGAdmin desajeitado. - David Cyprian
O Beekeeper Studio é um cliente PostgreSQL rápido, intuitivo e fácil de usar. Ele também suporta vários outros bancos de dados e funciona muito bem no Windows, Mac e Linux.
O que os usuários de PostgreSQL dizem sobre o Beekeeper Studio
Diferente do pgAdmin, o Beekeeper é extremamente simples de usar sem deixar a desejar em recursos, e o preço é justo! O recurso de backup de banco de dados é especialmente útil. Simplesmente um ótimo software.
Ferramenta fabulosa, a IDE mais prática que encontrei até hoje para administrar bancos Postgres e MySql - simplesmente funciona, sem complicação :-)