From: cristian(at)mckaffish(dot)com(dot)ar
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject:
Date: 2005-04-20 23:32:47
Message-ID: 1114039967.4266e69fb827a@www.mckaffish.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos:
Tengo el siguiente problema: creé una tabla con un campo de tipo serial (que es
clave primaria) y un cmapo de tipo varchar(x). Finalmente creé un trigger (EACH
ROW, after insert or update) que chequea si el campo varchar está vacío o es
nulo, genera un RAISE exeption sino devuelve NEW .
El trigger funciona bien: hace lo que tiene que hacer. El problema se sucita
cuando intento insertar un registro correcto inmediatamente de haber intentado
ingresar un registro con el campo varchar vacío(es lo que controla el trigger):
Se pierden los nros de secuencia del campo serial, saltea un valor. Si intentara
ingresar un registroerróneo 2 veces , salteará 2 veces. Un ejemplo:
id descripción
1 blah1
---
3 blah2

Según tengo entendido, cada llamada next_id() de una secuencia actualiza el
valor de dicha secuencia, se inserte o no el registro. Lo que sospecho es que
hace la llamada a next_id() antes qeu se dispare el desencadenante.
Podría alguien ayudarme?

Gracias

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-04-20 23:50:11 Re: Trigger, sequence y otras yerbas
Previous Message Cristian Franceschini 2005-04-20 23:32:37 Trigger, sequence y otras yerbas