Matheus eu consigo usar o mesmo esquema utilizando o dblink, porque essas 
tabelas estão em bancos diferentes.





De: pgbr-geral [mailto:[email protected]] Em nome de 
Matheus de Oliveira
Enviada em: quinta-feira, 26 de fevereiro de 2015 09:49
Para: Comunidade PostgreSQL Brasileira
Assunto: Re: [pgbr-geral] Função de inserção







2015-02-26 9:29 GMT-03:00 Matheus Ferreira <[email protected] 
<mailto:[email protected]> >:

Bom Dia pessoal



Estou tentando realizar uma função disparada por uma trigger, essa função deve 
inserir os mesmo valores da última inserção realizada de uma tabela para outra 
tabela.

Sendo o último insert realizado na tabela processo2 para tabela processo.

--------------------------------------------------------

CREATE TABLE processo2

(

  idprocesso integer NOT NULL,

  nrprocesso character varying(35)

)



CREATE TABLE processo

(

  idprocesso integer NOT NULL,

  nrprocesso character varying(35)

)





---------------------------------------------------------------



create or replace function insert_processo() returns trigger as

$$

begin

  INSERT INTO processo

select * from processo2





Dessa forma você está pegando tudo da tabela "processo2" e inserindo em 
"processo", o que você precisa é usar a variável NEW dentro da função:

    INSERT INTO processo(idprocesso, nrprocesso)

    VALUES(NEW.idprocesso, NEW.nrprocesso);

Se houver 100% de garantia que as tabelas possuem o mesmo esquema (geralmente 
não há), você pode usar o seguinte truque também:

    INSERT INTO processo

    VALUES((NEW).*);

create trigger insert_processo_tri before insert on processo2

  for each row execute procedure insert_processo();



Nesse caso me parece que a trigger deveria ser do tipo AFTER, assim você 
garante que o registro foi inserido.

Atenciosamente,

--

Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres <http://www.dextra.com.br/postgres/>



---
Este email foi escaneado pelo Avast antivírus.
http://www.avast.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a