From: | "Leo Gamez CCD Desarrollo" <desarrollo(at)ccdasesores(dot)e(dot)telefonica(dot)net> |
---|---|
To: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | |
Date: | 2005-04-21 06:24:31 |
Message-ID: | 6556315E9E43C34C98E67355DF3C5C050DC845@ZE3BUZON020.e.telefonica.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola Cristian,
Quiza deberias intentar con un trigger before insert or update. Puede que asi no se llame a la funcion next_id() del serial y no pierdas valores.
Saludos,
Leo
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.
---------------------------(fin del mensaje)---------------------------
TIP 9: el optimizador ignorará el uso de recorridos de índice si los
tipos de datos de las columnas no coinciden
From | Date | Subject | |
---|---|---|---|
Next Message | Leonardo Boet Sánchez | 2005-04-21 12:11:47 | RE: Posible Bug en PostgreSQL |
Previous Message | Alvaro Herrera | 2005-04-21 01:26:36 | Re: Trigger, sequence y otras yerbas |