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
