Em 25 de fevereiro de 2015 15:47, Matheus Saraiva <[email protected]
> escreveu:

>  *create or replace function "funcInsertClientes"( cliente integer,
> f_depends "Pessoas"[] ) returns boolean as *
> ........
> Na função, foi inserido na tabela Pessoas *(uma tabela genérica para todo
> tipo de pessoa),* todos os dependentes de um titular. O segundo insert,
> agora na tabela dependentes, deve adicionar, o código do dependente *(tabela
> de Pessoas)* e o código do titular.
> O ID do titular é tranquilo, pois já está vindo em forma de parâmetro para
> a função, mas como pegar o ID dos dependentes que foram cadastrado na
> tabela genérica de pessoas?
> A solução que pensei, foi pegar o *last_value* da sequência de Pessoas,
> antes e depois de inserir os dependentes. Assim, através da diferença eu
> saberia os ID que acabaram de ser cadastrados. Então, com um laço de
> repetição eu faria os inserts em dependentes.
> Porém, não sei se essa seria a forma mais elegante de se fazer.
>

É complicado te ajudar porque você não fornece um detalhamento sobre o seu
ambiente, apenas apresenta os problemas.
Pelo pouco que entendi, se queres um retorno de qualquer dado que foi
inserido, tente dar uma olhada na cláusula RETURNING [1], ela pode retornar
dados que foram inseridos.
Se entendi, talvez te ajude.

[1] - http://www.postgresql.org/docs/9.4/static/sql-insert.html

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

Responder a