2015-02-21 15:11 GMT-02:00 Matheus Saraiva <[email protected]>:

> Nesse caso, a ultima coluna (genitor) dos filhos que estão em array_filhos
> seria ignorada, certo?


Eu não incluiria ela no array.

Pensando no problema em si, não me parece que a lista possa ser *muito*
grande, outra forma de modelar o problema seria um loop na aplicação para
cada filho. Exemplo (pseudo-código):

    cn.execute("BEGIN;");
    cn.execute("SELECT fnInsertCliente(?, ?, ....)", [<parametros>]);
    stmt = cn.prepareStatement("SELECT fnInsertFilho(?, ?, ...)");
    for each filho f:
        stmt.execute([<parametros do filho f>]);
    cn.execute("COMMIT");

Assim você usa PREPARED STATEMENTS para já aliviar o processo de
parser/planning, e transação para garantir atomicidade.

Várias opções, fica a seu critério escolher a melhor.

Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a