Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group