Puxa, como nunca uso, esqueci do returning.
Também resolve e ficaria bem mais elegante q a minha alternativa.




--
Everton

2015-02-25 16:29 GMT-03:00 Rafael Fialho <rafafial...@gmail.com>:

> Em 25 de fevereiro de 2015 15:47, Matheus Saraiva <
> matheus.sara...@gmail.com> 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
> 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

Responder a