Marcos Fabrício Corso escreveu:

> Tenho 130 tabelas no postgres, cada uma com seus campos.
> 
> Criei elas com maiusculo, por exemplo "CLIENTE.NOME" , "FORNECEDOR.CODIGO" , 
> "NOTA.DATA"
> 
> Preciso mudar o nome de todas as tabelas e de todos os campos para minúsculo, 
> por exemplo, "cliente.nome" , "fornecedor.codigo" , "nota.data"
> 
> Tem alguma maneira de fazer isso automaticamente ou tenho que ir tabela por 
> tabela, campo por campo ...
> 
Um script? Estou muito cansado para codificar um agora. :( Mas vou
deixar algumas dicas aqui.

* obter todas as tabelas do banco de dados:
select n.nspname,relname from pg_catalog.pg_class c join
pg_catalog.pg_roles r on r.oid = c.relowner left join
pg_catalog.pg_namespace n on n.oid = c.relnamespace where relkind = 'r'
and n.nspname not in ('pg_catalog', 'pg_toast', 'information_schema');

* obter todas as colunas de uma tabela 'foo':
select a.attname from pg_catalog.pg_attribute a join pg_catalog.pg_class
c on c.oid = a.attrelid where a.attnum > 0 and not a.attisdropped and
c.relname = 'foo';

* alterar nome da tabela "FOOBAR":
ALTER TABLE "esquema.FOOBAR" RENAME TO esquema.foobar;

* alterar nome dos campos "FOO", "BAR" na tabela "foobar";
ALTER TABLE esquema.foobar RENAME COLUMN "FOO" TO foo;
ALTER TABLE esquema.foobar RENAME COLUMN "BAR" TO bar;



-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a