RE: Como usar varios update en una instruccion, es posible?

From: Jaime Quiroga <jay962(at)hotmail(dot)com>
To: Alvaro Herrera <alvherre(at)commandprompt(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:23:17
Message-ID: BLU134-W2688949F8589AD10DD2A31804B0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Gracias por tu respuesta alvaro, la verdad es que ciertamente como pusistes si los agrupo luego no podria saber cual fallo si fallase alguno. El porque fallan de vez en cuando los updates se debe al trafico, pero esto no es un problema del postgres sino mas bien del objeto que uso en visual basic que se satura, pero en realidad la cantidad de updates que hago si me afecta con los tiempos de espera para la comunicacion que tengo con un equipo externo, lo que he pensado entonces es hacer 2 aplicaciones uno manejara la comunicacion serial y depositara los paquetes en una tabla y luego la otra aplicacion se encargara de descargar los paquetes de la tabla he ir updatiando con mas calma.

Gracias

> Date: Fri, 11 Jan 2008 18:06:01 -0300
> From: alvherre(at)commandprompt(dot)com
> To: jay962(at)hotmail(dot)com
> CC: pgsql-es-ayuda(at)postgresql(dot)org
> Subject: Re: [pgsql-es-ayuda] Como usar varios update en una instruccion, es posible?
>
> 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
> --
> TIP 5: ¿Has leído nuestro extenso FAQ?
> http://www.postgresql.org/docs/faqs.FAQ.html

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ing. Ricardo Granados Tiznado 2008-01-11 23:08:07 INSERT O COPY ?
Previous Message Alvaro Herrera 2008-01-11 21:06:01 Re: Como usar varios update en una instruccion, es posible?