Re: problemon con trigger

From: Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: problemon con trigger
Date: 2007-01-08 11:47:58
Message-ID: 361716.78512.qm@web52105.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Ya logre hacerlo no lo hago con triggers directamente desde la aplicacion VB hace un select si esta vacio reinicio el campo.
En efecto tienes razón, pero imagino que se podría abrir la tabla en modo exclusivo, ¿como? ¡no tengo idea!. mas que pasitos de bebe estoy dando pasitos de caracol.
Saludos.

Alvaro Herrera <alvherre(at)commandprompt(dot)com> escribió:
Gabriel Ferro escribió:
> Maestros estoy empezando con postgree y me estoy volviendo loco, la
> cosa es que los clientes van metiendo en una tabla datos los cuales yo
> voy sacando y quiero que cuando la tabla este vacia se reinicie el
> campo autoincremento pensaba en hacerlo con trigger de forma que sea
> automatico pero me da un error y no se para donde disparar, debajo les
> pongo el codigo, si me pueden ayudar se los agradecere...

Huh, esto que propones esta completamente malo, porque puedes causar que
al resetear la secuencia se vuelva al valor inicial que esta siendo
insertado en ese mismo momento.

Te pongo un ejemplo

sesion 1:
begin;
insert into Recibidas values (nextval(Recibidas_Renglon_seq), ...)

sesion 2:

ejecuta el procedimiento, empieza por el
select * from Recibidas;

puesto que la sesion 1 no ha comprometido su transaccion todavia, no ve
la tupla que esta insertando, por lo tanto entra en NO_DATA_FOUND y
resetea la secuencia

sesion 1:
commit;

sesion 3:
begin;
insert into Recibidas values (nextval(Recibidas_Renglon_seq), ...)
-- Aca nextval() entrega el valor 1 porque la secuencia fue reseteada

Y listo, ya corrompiste tus datos, felicitaciones!

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

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Agustin Casiva 2007-01-08 11:55:24 Re: postgreSQl trabaja con XML?
Previous Message hector lozano 2007-01-08 06:15:02 Cambios entre las versiones 8.x y 7.x