Início > PL/pgSQL, PostgreSQL > Inserindo e atualizando várias tabelas ao mesmo tempo usando PL/pgSQL

Inserindo e atualizando várias tabelas ao mesmo tempo usando PL/pgSQL

Olá pessoal,

esses dias eu me deparei com um probleminha um pouco chato (como sempre), depois de adicionar umas tabelas novas no sistema e atualizar umas outras antigas, teria que efetuar o link entre elas com os dados legados… bom, pare resolver isso, achei por bem criar uma funçãozinho em PL/pgSQL (sim, estou usando o PostgreSQL) para me ajudar. 😉

Segue ai em baixo, um exemplo do que tive que fazer:


create or replace function my_function(table_row my_table) returns void as $$
delegate
    next_id integer := nextval('my_other_table_id_seq');
begin
    insert into my_other_table(id, name) values (next_id, table_row.name);
    update my_table set my_other_table_link = next_id where id = table_row.id;
end;
$$language plpgsql;

Depois de criada a função, basta executá-la:

select my_function(linha) from my_table linha where linha.id between 123 and 456 order by asc;

Essa chamada fará um loop executando a função criada para cada linha resultado da query.

Simples não? 😉

[]’s

Anúncios
Categorias:PL/pgSQL, PostgreSQL
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: