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
