Boa tarde pessoal, tô precisando de uma ajuda, tenho uma trigger after
update for each row, e nessa trigger eu com base em vários testes posso dar
insert em outra tabela que tem um serial como chave, gostaria se saber se
existe uma maneira de eu resgatar o código da chave da segunda tabela no
próprio update, para exemplificar segue abaixo exemplo.
CREATE TABLE tab_a (
campo1 INTEGER,
campo2 TEXT
) WITHOUT OIDS;
CREATE TABLE tab_b (
campo3 serial,
campo4 TEXT
) WITHOUT OIDS;
insert into tab_a(campo1,campo2) values (1,'a');
insert into tab_a(campo1,campo2) values (2,'b');
insert into tab_a(campo1,campo2) values (3,'c');
insert into tab_a(campo1,campo2) values (4,'d');
CREATE FUNCTION fnc_tgr_tab_a_upd (
)
RETURNS trigger AS
$body$
DECLARE chave_tabb integer;
BEGIN
insert into tab_b(campo4) values(new.campo1) returning
campo3 into chave_tabb;
return new;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER;
CREATE TRIGGER tab_a_tr
AFTER UPDATE
ON public.tab_a FOR EACH ROW
EXECUTE PROCEDURE fnc_tgr_tab_a_upd();
update tab_a set campo2='z' where campo1=1
O que gostaria de fazer seria algo como:
update tab_a set campo2='z' where campo1=1 returning chave_tabb;
Tem como?
Cordialmente,
Felipe Rigotti
-------------------------------------------------------
<mailto:[email protected]> [email protected]
------------------------------------------------------
SBsistemas
<http://www.sbsistemas.com.br/> www.sbsistemas.com.br
<mailto:[email protected]> [email protected]
(54) 3342-6666
_____
Esta mensagem, incluindo os seus anexos, contém informações confidenciais
destinadas a indivíduo e propósito específicos, e é protegida por lei. Caso
você não seja o citado indivíduo, deve apagar esta mensagem. É
terminantemente proibida a utilização, acesso, cópia ou divulgação não
autorizada das informações presentes nesta mensagem. As informações contidas
nesta mensagem e em seus anexos são de responsabilidade de seu autor, não
representando idéias, opiniões, pensamentos ou qualquer forma de
posicionamento por parte da SBsistemas.
_____
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral