Alterar Schema de Tabela no PostgreSQL

código sql de criação de tabela

Em sua configuração original, quando criamos uma tabela (ou qualquer outro objeto) no PostgreSQL sem especificar o schema que ela deve ficar, automaticamente o PG irá cria-lá no schema public.

Caso você necessite alterar o schema de suas tabelas, você pode realizar um alter table, através da seguinte instrução SQL:

 ALTER TABLE SCHEMA.SUA_TABELA SET SCHEMA NOME_SCHEMA_DESTINO;  

No exemplo, aponto o schema qual a tabela esta atualmente, desta forma posso estar conectado a qualquer schema dentro do mesmo banco de dados que conseguirei realizar a mudança.

Ficou com alguma dúvida? Posta ela nos comentários, ou veja se ela já não esta respondida:


Perguntas Frequentes

Ao mover a tabela, os índices e triggers também são movidos?
Somente os índices são movidos, os triggers não. Neste caso, você pode cria-los no novo schema e, posteriormente dropa-los no schema anterior.

Ao mover uma tabela que contém relação com outra no schema origem, como fica a foreign key?
O PostgreSQL interpreta a ação e, aponta a foreign key para o schema onde esta a tabela relacionada, mas recomendo ter prudência quando existir relação na tabela a ser alterada.

Tem como mudar o schema padrão de public para outro qualquer?
Sim, você terá que alterar a variável search_path, veja como fazer isto aqui.

Deixe um comentário