Re: Ayuda sobre updates

Lists: pgsql-es-ayuda
From: "Robby Gustabello Cogle" <robbygustabello(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Ayuda sobre updates
Date: 2007-08-28 21:45:22
Message-ID: 298378e70708281445x432a8312j1ab8efd527be9f4b@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola amigos de postrgres:
Estoy trabajando con una tabla y necesito actualizar varios campos en algún
momento. Quisiera saber si es mejor darle update a cada campo a la


From: "Miguel Panuera" <mpanuera(at)gmail(dot)com>
To: "Robby Gustabello Cogle" <robbygustabello(at)gmail(dot)com>, PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda sobre updates
Date: 2007-08-30 22:56:45
Message-ID: f603e5000708301556n45e55da0qa34d254496521f64@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

darle update a cada campo a la ........... ?¿?¿?¿?¿

El día 28/08/07, Robby Gustabello Cogle <robbygustabello(at)gmail(dot)com>
escribió:
>
> Hola amigos de postrgres:
> Estoy trabajando con una tabla y necesito actualizar varios campos en
> algún momento. Quisiera saber si es mejor darle update a cada campo a la
>

--
Miguel Panuera C.
STsoft Developer
mpanuera(at)gmail(dot)com
m(dot)panuera(at)stsoftperu(dot)com


From: "Robby Gustabello Cogle" <robbygustabello(at)gmail(dot)com>
To: "Miguel Panuera" <mpanuera(at)gmail(dot)com>
Cc: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda sobre updates
Date: 2007-08-30 23:01:37
Message-ID: 298378e70708301601u368a46ccn64bc9d83d8760a0d@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Parece ser que el mensaje nunca llegó completamente por problemas con la
red. Disculpen. Mi duda radica en si es mejor darle update a uno o varios
campos a la vez (los que sé que cambian) o hacerlo a toda la tupla,
sobreescribiendo los campos que sé que no han cambiado.
Saludos

On 8/30/07, Miguel Panuera <mpanuera(at)gmail(dot)com> wrote:
>
> darle update a cada campo a la ........... ?¿?¿?¿?¿
>
> El día 28/08/07, Robby Gustabello Cogle <robbygustabello(at)gmail(dot)com >
> escribió:
> >
> > Hola amigos de postrgres:
> > Estoy trabajando con una tabla y necesito actualizar varios campos en
> > algún momento. Quisiera saber si es mejor darle update a cada campo a la
> >
>
>
>
> --
> Miguel Panuera C.
> STsoft Developer
> mpanuera(at)gmail(dot)com
> m(dot)panuera(at)stsoftperu(dot)com


From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
To: "Robby Gustabello Cogle" <robbygustabello(at)gmail(dot)com>
Cc: "Miguel Panuera" <mpanuera(at)gmail(dot)com>, PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda sobre updates
Date: 2007-08-30 23:08:31
Message-ID: c2d9e70e0708301608p523b3c53nc12a161144303d9b@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On 8/30/07, Robby Gustabello Cogle <robbygustabello(at)gmail(dot)com> wrote:
> Parece ser que el mensaje nunca llegó completamente por problemas con la
> red. Disculpen. Mi duda radica en si es mejor darle update a uno o varios
> campos a la vez (los que sé que cambian) o hacerlo a toda la tupla,
> sobreescribiendo los campos que sé que no han cambiado.
> Saludos
>
>

estas dos sentencias son lo mismo (se demoran lo mismo):
update tabla set campo1 = valor where expresion;
update tabla set campo1 = valor1, campo2 = valor2 where expresion;

si te refieres a actualizar una fila a la vez o varias al mismo
tiempo, actualiza varias en una sola consulta...

--
Atentamente,
Jaime Casanova

"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Robby Gustabello Cogle <robbygustabello(at)gmail(dot)com>
Cc: Miguel Panuera <mpanuera(at)gmail(dot)com>, PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda sobre updates
Date: 2007-08-30 23:24:45
Message-ID: 20070830232445.GB5872@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Robby Gustabello Cogle escribió:
> Parece ser que el mensaje nunca llegó completamente por problemas con la
> red. Disculpen. Mi duda radica en si es mejor darle update a uno o varios
> campos a la vez (los que sé que cambian) o hacerlo a toda la tupla,
> sobreescribiendo los campos que sé que no han cambiado.

Evita sobreescribir los campos que no cambian. En general no habrá
ninguna diferencia, pero si tienes por ej. un campo de texto de más de
2 KB y lo sobreescribes inútilmente, estás provocando un update en la
tabla TOAST que habría sido innecesario.

Creo que puede haber una diferencia si tienes FKs en esas columnas
también.

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.


From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
To: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
Cc: "Robby Gustabello Cogle" <robbygustabello(at)gmail(dot)com>, "Miguel Panuera" <mpanuera(at)gmail(dot)com>, PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda sobre updates
Date: 2007-08-30 23:56:00
Message-ID: c2d9e70e0708301656l241ca62crd8e70f49f89c4b6@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On 8/30/07, Alvaro Herrera <alvherre(at)commandprompt(dot)com> wrote:
> Evita sobreescribir los campos que no cambian. En general no habrá
> ninguna diferencia, pero si tienes por ej. un campo de texto de más de
> 2 KB y lo sobreescribes inútilmente, estás provocando un update en la
> tabla TOAST que habría sido innecesario.
>

cierto... siempre olvido esas...

> Creo que puede haber una diferencia si tienes FKs en esas columnas
> también.
>

no creo. si hubieramos solucionado eso, crear triggers que se ejecuten
solo al actualizar ciertas columnas seria sencillo de lograr...

--
Atentamente,
Jaime Casanova

"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Jaime Casanova <systemguards(at)gmail(dot)com>
Cc: Robby Gustabello Cogle <robbygustabello(at)gmail(dot)com>, Miguel Panuera <mpanuera(at)gmail(dot)com>, PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda sobre updates
Date: 2007-08-31 00:01:39
Message-ID: 20070831000139.GD5872@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Jaime Casanova escribió:
> On 8/30/07, Alvaro Herrera <alvherre(at)commandprompt(dot)com> wrote:

> > Creo que puede haber una diferencia si tienes FKs en esas columnas
> > también.
> >
>
> no creo. si hubieramos solucionado eso, crear triggers que se ejecuten
> solo al actualizar ciertas columnas seria sencillo de lograr...

Si no me equivoco, los triggers de FK chequean si las columnas no han
cambiado y evitan disparar acciones posteriores. Pero no estoy seguro
si hacen una comparación del datum nuevo con el antiguo, o bien
simplemente verifican que la columna no fue tocada en el UPDATE.

... mirando el codigo ...

OK, se comparan los valores, así que da lo mismo si especificas las
columnas en UPDATE o no. Mira ri_KeysEqual en
src/backend/utils/adt/ri_triggers.c

--
Alvaro Herrera http://www.flickr.com/photos/alvherre/
"El sentido de las cosas no viene de las cosas, sino de
las inteligencias que las aplican a sus problemas diarios
en busca del progreso." (Ernesto Hernández-Novich)


From: "Robby Gustabello Cogle" <robbygustabello(at)gmail(dot)com>
To: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
Cc: "Miguel Panuera" <mpanuera(at)gmail(dot)com>, PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda sobre updates
Date: 2007-08-31 01:20:12
Message-ID: 298378e70708301820s6cb351e2kc51ed5c25ada8cf3@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

¿qué es FKs? Gracias por las respuestas. Me parecía que la sobre-escritura
innecesaria podía demorar un poco más, pero no estaba seguro

On 8/30/07, Alvaro Herrera <alvherre(at)commandprompt(dot)com> wrote:
>
> Robby Gustabello Cogle escribió:
> > Parece ser que el mensaje nunca llegó completamente por problemas con la
> > red. Disculpen. Mi duda radica en si es mejor darle update a uno o
> varios
> > campos a la vez (los que sé que cambian) o hacerlo a toda la tupla,
> > sobreescribiendo los campos que sé que no han cambiado.
>
> Evita sobreescribir los campos que no cambian. En general no habrá
> ninguna diferencia, pero si tienes por ej. un campo de texto de más de
> 2 KB y lo sobreescribes inútilmente, estás provocando un update en la
> tabla TOAST que habría sido innecesario.
>
> Creo que puede haber una diferencia si tienes FKs en esas columnas
> también.
>
> --
> Alvaro Herrera
> http://www.CommandPrompt.com/
> The PostgreSQL Company - Command Prompt, Inc.
>


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Robby Gustabello Cogle <robbygustabello(at)gmail(dot)com>
Cc: Miguel Panuera <mpanuera(at)gmail(dot)com>, PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda sobre updates
Date: 2007-08-31 02:04:28
Message-ID: 20070831020428.GH5872@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Robby Gustabello Cogle escribió:
> ¿qué es FKs? Gracias por las respuestas. Me parecía que la sobre-escritura
> innecesaria podía demorar un poco más, pero no estaba seguro

Llave foránea (foreign key)

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.