|
ola, estou tentando usar essa rotina que passou na lista
para alterar nome de campos de tabelas, voce conseguiu executar corretamente,
para mim nao mudou nenhum campo ...
tem que mudar alguma coisa no fonte ou nao
...
obrigado
Atenciosamente, Marcos Fabrício Corso Analista de Sistemas
Júnior JM Informática (41) 3352-2688 [EMAIL PROTECTED]
----- Original Message -----
Sent: Thursday, October 19, 2006 1:52
PM
Subject: Re: [PostgreSQL-Brasil] alterar
nome da tabela e do campo
Sim... Alterou todas as tabelas (apenas 2 que criei para
teste) e seus respectivos campos !
On 10/19/06, joao cosme
de oliveira junior <
[EMAIL PROTECTED]> wrote:
funcionou?
Em
Quinta 19 Outubro 2006 13:59, Thiago Risso escreveu: > Depois do
toque do João.... Fiz alguns ajustezinhos : > > CREATE OR
REPLACE FUNCTION toLowerTablesAndFields() > RETURNS text
AS > $BODY$ > DECLARE > recTables
RECORD; > recFields
RECORD; > lowerTable
varchar; > lowerField
varchar; > table
varchar; > field
varchar; > schema varchar; >
BEGIN > -- SELECIONA AS TABELAS E ESQUEMAS
> FOR recTables IN 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 ='teste' --NOT IN ('pg_catalog', 'pg_toast', >
'information_schema') >
LOOP > table :=
recTables.relname; >
lowerTable := lower(table);
> schema
:=recTables.nspname; >
EXECUTE 'ALTER TABLE "'||schema||'"."'||table||'" RENAME TO >
"tmp_'||lowerTable||'"'
; >
EXECUTE 'ALTER TABLE "'||schema||'"."tmp_'||lowerTable||'" > RENAME
TO
"'||lowerTable||'"'; > >
-- SELECIONA OS CAMPOS DA
TABELAS >
FOR recFields IN 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 =
table >
LOOP >
field:=recFields.attname; >
lowerField := lower(field);
>
EXECUTE 'ALTER TABLE "'||schema||'"."'||lowerTable||'" > RENAME COLUMN
"'||field||'" TO
"tmp_'||lowerField||'"'; >
EXECUTE 'ALTER TABLE "'||schema||'"."'||lowerTable||'" > RENAME
COLUMN "tmp_'||lowerField||'" TO
"'||lowerField||'"'; >
END LOOP; > > > END
LOOP; > RETURN 'Acabou!!'; >
END; > $BODY$ > LANGUAGE 'plpgsql' VOLATILE;
> > Att: > Thiago
Risso _______________________________________________ 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
E-mail classificado pelo Identificador
de Spam Inteligente. Para alterar a categoria classificada, visite o Terra
Mail
Esta mensagem foi verificada pelo E-mail Protegido Terra. Scan engine:
McAfee VirusScan / Atualizado em 18/10/2006 / Versão: 4.4.00/4876 Proteja o
seu e-mail Terra: http://mail.terra.com.br/
_______________________________________________ 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
|
_______________________________________________
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