Em 09/12/08, Eloi Ribeiro<[EMAIL PROTECTED]> escreveu:
> Ola a toda a lista.
>
> Estou tentar fazer um disparador (trigger) que actualize um campo de uma
> tabela com o campo de outra tabela. Se os campos estão na mesma tabela já
> entendi como se faz, mas quando não é o caso como se poderia fazer?
>
> exemplo:
> ------------------------------------------------------------------------------------------------------------------------------------
> create or replace function nome_funcao() returns trigger as '
> begin
>
> NEW.campo0 = NEW.campo1 + NEW.campo2; -- aqui tudo bem
>
> -- aqui está a minha duvida, como fazer um update
> UPDATE tabela1 SET campo0 = tabela2.campo0 FROM tabela2 where tabela1.id =
> tabela2.id;

Pelo que entendi no lugar do UPDATE acima use:
SELECT tabela2.campo0 INTO new.campo0 FROM tabela2 WHERE tabela2.id = new.id;


>
> return NEW;
> end;
> ' language plpgsql;
> create trigger nome_disparador before insert or update on tabela1
> for each row execute procedure nome_funcao();
>


Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a