exceptions y rollback con secuencias

From: Miguel <mmiranda(at)123(dot)com(dot)sv>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: exceptions y rollback con secuencias
Date: 2005-11-16 20:23:17
Message-ID: 437B9535.9080108@123.com.sv
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola, he implementado una funcion que usa secuencias, incremento la
secuencia a mitad de la funcion y al final evaluo si hubo errores,
leyendo el manual he encontrado que a lo que se hace rollback es a lo
que afecta las tablas de la base de datos, no asi a las variables
manipuladas dentro de la funcion, mi pregunta es: las secuencias entran
dentro de la primera o segunda categoria?, la secuencia es un folio asi
que no quiero que se aumente al haber un error, para ello he hecho algo
como esto:

BEGIN

BEGIN
vpais := 'SV';
INSERT INTO folios (pais,fecha,folio)
VALUES (vpais,current_date,NEXTVAL('folio_sv'));
EXCEPTION WHEN OTHERS THEN
RAISE NOTICE 'error al insertar folio';
PERFORM SETVAL('folio_sv',CURRVAL('folio_sv')-1);
END;
RETURN;
END;

En teoria si se da un error en la insercion, llave duplicada, etc, como
el exception no me hace rollback del incremento en la secuencia
'folio_sv', por eso hago el perform, hasta ahora no me ha reportado
ningun error, es esto valido y/o necesario?
Saludos

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2005-11-16 20:37:32 Re: exceptions y rollback con secuencias
Previous Message Luis Sanhueza 2005-11-16 20:09:44 RE: apt-get ayuda celestial???