Parece estar faltando detalhes no seu código.
Mas vou tentar adivinhar o q vc queria..
Vc nao vai poder fazer "insert () select" em pessoas.
vc vai ter q percorrer o array manualmente e, dentro do loop, inserir em
pessoa e armazenar os valores da sequence em outro array local da procedure.
loop em f_depends
select nextval('nome_da_sequence') into v_seq;
insert into pessoa (campoSerial, ...) values (v_seq, ...);
armazena v_seq em array local a_seqs
fim loop
a_seqs terá todos os códigos q tu precisa, sem problema de consistência.
--
Everton
2015-02-25 15:47 GMT-03:00 Matheus Saraiva <[email protected]>:
> *create or replace function "funcInsertClientes"( cliente integer,
> f_depends "Pessoas"[] ) returns boolean as *
>
> *$BODY$*
>
> * insert into "Pessoas" -- Insere os dependentes na tabela de
> Pessoas*
> * (*
> * nome,*
> * telefone,*
> * email,*
> * endereco,*
> * imagem*
> * ) select * from unnest(f_depends);*
>
> inset into "Dependentes" -- Insere os dependentes na tabela de
> dependentes
> (
> pessoa, -- Código da pessoa (Tabela de Pessoas) FK
> titular -- Código da pessoa (Tabela de Pessoas) FK
> ) ....................................
>
> * end;*
>
> *$BODY$ language plpgsql volatile cost 100;*
>
> 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.
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral