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
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 |