obrigado Matheus.Excelente!

Pedro Costa
Enviado do meu Android


Matheus de Oliveira escreveu:


On Tue, Apr 17, 2012 at 12:13 PM, Pedro Costa <pedrocostaa...@sapo.pt> 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.


Atenciosamente
_ _
Fabiano Abreu
Papo Sql - Um blog com tutoriais, dicas e truques sobre Sql



2012/4/17 Pedro Costa <pedrocostaa...@sapo.pt>
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
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
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
Instituto de Ciências Matemáticas e de Computação - ICMC
Universidade de São Paulo - USP


_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a