jueves, 17 de abril de 2014

Postgres - psql - cursor for update

Función que actualiza una tabla iterando la misma con números correlativos a partir de un parámetro:

CREATE OR REPLACE FUNCTION seq_id(integer) RETURNS VOID AS
$$
DECLARE
 nrosec integer:= $1;

 curupd CURSOR FOR SELECT * from tabla  for UPDATE;
BEGIN
 for i in curupd LOOP
   UPDATE tabla SET id=nrosec WHERE CURRENT OF curupd;
  nrosec:=nrosec+1;
 END LOOP;

 return;
END;
$$
LANGUAGE 'plpgsql';  



No hay comentarios.:

Publicar un comentario