From: | Raúl Andrés Duque Murillo <ra_duque(at)yahoo(dot)com(dot)mx> |
---|---|
To: | "Lista - PostgreSQL" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Actualizar registros de tabla basados en otra |
Date: | 2009-02-09 09:08:01 |
Message-ID: | 67BD01BEA2364B90AEC4EE780EFB834B@Principal |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Cordial saludo compañeros.
Quisiera saber si a alguien se le ocurre una solución a este problema.
Tengo un proceso que actualiza datos en una tabla basado en valores de otra tabla. Actualmente lo realizo DESDE LA APLICACION recorriendo la tabla base y por cada registro realizo una actualización en la tabla a actualizar, pero es MUY demorado por la cantidad de datos que actualmente se maneja y ahora quiero hacerlo desde la DB (pl/pgsql) y "set-oriented".
Más o menos el algoritmo que hago desde la aplicación es el siguiente:
for each (select distinct muestra_par = id_parte, muestra_alm = id_almacen, muestra_loc = id_localizacion from def_salinvmes)
select nuevovalor = valor
from def_salinvmes
where id_parte = muestra_par
id_almacen = muestra_alm
id_localizacion = muestra_loc
order by anno_salinvmes desc, mes_salinvmes desc
limit 1
update def_existloc
set valor = nuevovalor
where id_parte = muestra_par
id_almacen = muestra_alm
id_localizacion = muestra_loc
end for each
Lo que se me ha ocurrido es utilizar un cursor pero automáticamente se me cae el desempeño al piso y casi que estría haciendo lo mismo que hago desde la aplicación en la DB. Otra alternativa era crear un trigger/regla en el before para cambiar el update por un delete/insert algo así como implementar un UPSERT pero no me gusta la idea de crear y borrar este trigger cada vez que se corre el proceso ya que no podría tenerlo "vivo" en la operación normal.
Cualquier comentario es bienvenido.
Atentamente,
RAUL DUQUE
Bogotáq, Colombia
From | Date | Subject | |
---|---|---|---|
Next Message | Gabriel Ferro | 2009-02-09 10:29:16 | Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Tsearch2: realizar búsqueda sin acentos |
Previous Message | Edwin Quijada | 2009-02-09 06:08:24 | RE: Error de instalacion en UBUNTU! |