From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Jaime Quiroga <jay962(at)hotmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Como usar varios update en una instruccion, es posible? |
Date: | 2008-01-11 21:06:01 |
Message-ID: | 20080111210601.GC8260@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Jaime Quiroga escribió:
> Existe la manera de concatenar varios updates en un solo string para que el servidor se encargue de ellos, algo asi como esto
> Update tablita1 set hola='1' where orden= '23' and cod= '21'; update tablita1 set hola='12' where orden='23' and cod='43', update tablita1 set hola='34' where orden='23' and cod='90'
No. Si pudieras expresar el update como una consulta, funcionaria lo
que quieres. Por ej.
begin
create temp table updates (hola int, orden int, cod int) on commit drop;
insert into updates values (1, 23, 21);
insert into updates values (12, 23, 43);
insert into updates values (34, 23, 90);
update tablita1 from updates set hola = updates.hola
where orden = updates.orden and cod = updates.cod;
commit;
El problema es que si uno de esos updates falla, entonces todo va a
fallar y vas a tener que empezar de nuevo (y peor aun: vas a tener que
examinar la tabla y verificar cual falló, por que, y como corregirlo).
El siguiente problema es que no tienes como saber que los tres updates
actualizaron exactamente un registro cada uno (o los que tu quieras), en
cambio es facil hacerlo cuando haces un update por cada paquete.
Ahora lo que no me queda claro es por que fallan ...
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Quiroga | 2008-01-11 21:23:17 | RE: Como usar varios update en una instruccion, es posible? |
Previous Message | Jaime Quiroga | 2008-01-11 20:50:29 | Como usar varios update en una instruccion, es posible? |