Re: Consulta sobre UPDATE

From: Alvaro Herrera <alvherre(at)surnet(dot)cl>
To: Aldo Alexander Leyva Alvarado <aleyva2004(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Consulta sobre UPDATE
Date: 2005-05-25 17:42:59
Message-ID: 20050525174259.GB8590@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Wed, May 25, 2005 at 12:03:14PM -0500, Aldo Alexander Leyva Alvarado wrote:
> Gracias por el Dato de iniciar el POSTGRESQL en XP, con eso ya puedo
> cambiar de usuario desde consola del windows, si bien puedo iniciar
> el postgres, aun no me muestra los Logs que esta botando el postgres,
> bueno seguire intentando.

Configura log_destination en postgresql.conf. Puede ser "eventlog", que
ira al log de eventos, o stderr y activa la opcion "redirect_stderr" y
configuras los archivos para que vaya a parar a alguna parte donde
puedas examinarlo comodamente.

> Es decir lo que necesito para hacer dicho INSERT es reindexar el
> n_item, ese es mi problema, estaba probando con:
> UPDATE TB_TABLA_X SET n_item=n_item + 1 WHERE id_tabla=1 AND n_item>=2;
> Pero no funciona, seguramente porque n_item es parte del PK, y que
> cuando esta actualizando el primer registro (seguramente esta
> empezando de menor a mayor) intenta actualizarse a un registro
> existente (que todavia no se ha actualizado).

Hum, hay un problema con los indices unicos: cada vez que modificas un
registro la verificacion de unicidad se hace instantaneamente, no puedes
dejarla para mas tarde cuando hayas corregido el siguiente registro.
Por lo tanto cuando modificas el primero, hace conflicto con el
siguiente, y todo falla.

Lo que puedes hacer es hacer el UPDATE en dos pasos:

UPDATE ... SET n_item = - n_item WHERE id_tabla = 1 AND n_item >= 2
UPDATE ... SET n_item = - n_item + 1 WHERE id_tabla = 1 AND n_item <= -2

Ojala te sirva.

--
Alvaro Herrera (<alvherre[a]surnet.cl>)
"La Primavera ha venido. Nadie sabe como ha sido" (A. Machado)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jairo Martín Miguel 2005-05-25 18:51:35 ejecutar una consulta creada
Previous Message Alvaro Herrera 2005-05-25 17:38:56 Re: tipos de datos