Re: Reemplazar valor de un campo.

From: Alexys Lozada <alexyslc(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)surnet(dot)cl>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Reemplazar valor de un campo.
Date: 2005-06-16 15:04:33
Message-ID: 13a078600506160804408a72bf@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Mil gracias Alvaro, como siempre tus respuestas nos ayudan mucho.
Voy a probar :-)

On 6/16/05, Alvaro Herrera <alvherre(at)surnet(dot)cl> wrote:
> On Thu, Jun 16, 2005 at 03:29:02PM +0200, Alexys Lozada wrote:
>
> > Esto ya me funcionó, pero pense que habia otra forma de ubicarme sobre
> > cada registro y reemplazar el dato, es decir, no hacer el UPDATE
> > mitabla..... pense que se podia hacer un replace o algo asi, porque en
> > mi muy poca experiencia con SQL, creo que el hacer el update con ese
> > condicional tiene que buscar en todos los registros el que coincida,
> > pero si yo pudiera simplemente pararme sobre el registro y cambiar el
> > dato seria GENIAL!!!.
>
> Claro, puedes usar la columna ctid de cada registro. Claro que tienes
> que bloquar la tabla primero para uso exclusivo; creo que podria ser
> algo como
>
> > BEGIN
> LOCK TABLE mitabla;
> > renumerar=nuecod
> > FOR rs IN SELECT *, ctid FROM mitabla
> > LOOP
> > UPDATE mitabla SET codigo=renumerar WHERE ctid = rs.ctid
> > renumerar=renumerar+1;
> > END LOOP;
> > RAISE NOTICE 'Codigos actualizados';
> > RETURN;
> > END;
>
> No estoy muy seguro si eso funcionara exactamente de esa manera, pero
> algo similar tiene que ser. Prueba y nos cuentas.
>
> ctid es la posicion fisica de la fila dentro de la tabla; es un par (X, Y)
> donde X es el numero de bloque e Y es la posicion de la fila dentro del
> bloque.
>
> --
> Alvaro Herrera (<alvherre[a]surnet.cl>)
> "When the proper man does nothing (wu-wei),
> his thought is felt ten thousand miles." (Lao Tse)
>

--
---------------------------------------
Alexys Lozada

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Manuel Sugawara 2005-06-16 15:20:21 Re: duda con create function
Previous Message Pepe Ballaga 2005-06-16 15:04:07 duda con create function