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