On Tue, Apr 17, 2012 at 12:13 PM, Pedro Costa <[email protected]>wrote:
> Obrigado Fábio. > Já desconfiava..... > > Abraço > > > > > > Em 17-04-2012 13:23, Fabiano Abreu escreveu: > > *Olá Pedro.* > * > * > *Creio que isto não seja possível, observando a documentação do > PostgreSQL tal condição não é prevista, imagino que em nenhum banco de > dados.* > * > * > *Mas com isto, não posso afirmar que não é possível, talvez seja, de uma > forma desconhecida.* > * > * > http://www.postgresql.org/docs/8.1/static/sql-altertable.html > * > *Atenciosamente > _ _ > *Fabiano Abreu* > *Papo Sql <http://paposql.blogspot.com> - Um blog com tutoriais, dicas e > truques sobre Sql > * > > > 2012/4/17 Pedro Costa <[email protected]> > >> Pessoal, >> >> É possível usar o case com um alter table? >> >> Tipo assim: >> >> alter table rua >> >> case n_rua exists (SELECT attname FROM pg_attribute WHERE attrelid = >> (SELECT oid FROM pg_class WHERE relname = 'ruas') AND attname = 'n_rua') >> >> then add column largura double precision,add column tipologia text,add >> column declive double precision >> >> else alter table ruas add column n_rua integer, >> >> >> >> Obrigado >> >> >> _______________________________________________ >> pgbr-geral mailing list >> [email protected] >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> > > > > _______________________________________________ > pgbr-geral mailing > [email protected]https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > Você pode fazer isso dentro de uma stored procedure, mais ou menos assim: create or replace procedure insere_campo() returns void language plpgsql as $$ begin if exists (SELECT attname FROM pg_attribute WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ruas') AND attname = 'n_rua') then alter table rua add column largura double precision, add column tipologia text, add column declive double precision; else alter table ruas add column n_rua integer; end if; end; $$; Ou até num bloco anônimo: do language plpgsql $$ -- mesmo código acima... $$; Atenciosamente, -- Matheus de Oliveira Bacharelado em Ciências de Computação Laboratório de Computação de Alto Desempenho - LCAD<http://www.lcad.icmc.usp.br/> Instituto de Ciências Matemáticas e de Computação - ICMC<http://www.icmc.usp.br/> Universidade de São Paulo - USP <http://www.sc.usp.br/>
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
