From: | Cristian Franceschini <ccfranceschini(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Trigger, sequence y otras yerbas |
Date: | 2005-04-20 23:32:37 |
Message-ID: | 4266E695.8080208@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
From | Date | Subject | |
---|---|---|---|
Next Message | cristian | 2005-04-20 23:32:47 | |
Previous Message | Grover Navia | 2005-04-20 22:49:15 | Problemas con el caracter "Ñ" |