Em Qui, 2015-02-19 às 12:31 -0200, Matheus de Oliveira escreveu:
> 
> 2015-02-19 12:09 GMT-02:00 Matheus Saraiva
> <[email protected]>:
>         Estou fazendo uma função para inserir itens em uma determinada
>         tabela.
>         Minha ideia é uma função que receba uma lista de registros e
>         grave todos
>         eles. Dessa forma evitaria várias chamadas à função para
>         realizar as
>         gravações.
>         Teoricamente, a função deveria receber um parâmetro de um tipo
>         de lista,
>         um contêiner, com todos os registos a serem gravados. A função
>         então
>         através de um FOR percorreria a lista gravaria todos os
>         registros na
>         tabela um por um, sem a necessidade do usuários realizar uma
>         chamada
>         para cada registro.
>         Isso é possível? Como ficaria?
> 
> 
> 
> Você pode passar os elementos num array, ou usar uma estrutura mais
> dinâmica como hstore ou json/jsonb.
> 
> 
> Tem como você apresentar como está essa função? Em geral eu diria pra
> evitar isso, melhor usar um INSERT ou COPY diretamente. Mesmo dentro
> da função, pode ser melhor evitar o FOR e usar uma única instrução, se
> for um array você pode fazer: INSERT INTO ... SELECT ... FROM
> unnest(array).
> 
> 
> Tem algo a mais de especial dessa função ou é só pra encapsular o
> INSERT?

Sim, basicamente é apenas para evitar as várias chamadas de insert. Um
array pode armazenar dados de tipos diferentes?
E com jason como funcionaria? A aplicação que acessaria a base de dados
gera esse arquivo .json, chama a função criada no plpgsql e passar a URL
do arquivo?


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

Responder a