From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Julio Rivero <jcrmlima(at)gmail(dot)com> |
Cc: | Conrado Blasetti <conrado(at)mapfre(dot)com(dot)ar>, July Campos <jcampos(at)interactivedata(dot)com(dot)ve>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Ayuda urgente con transacciones |
Date: | 2006-02-08 03:16:57 |
Message-ID: | 20060208031657.GC11718@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Julio Rivero escribió:
> mmm... ok, entonces habrá que modificar mis procedimientos almacenados para
> que no cometer este error.
Exactamente. Observa que no puedes usar ninguna sentencia de control de
transaccion en una funcion PL/pgSQL (concretamente, ninguna cosa que use
SPI). No puedes usar SAVEPOINT, ni ROLLBACK TO, ni COMMIT, ni START.
(En PL/pgSQL tampoco puedes usar BEGIN, porque el compilador lo
interpreta como el BEGIN que marca el comienzo de un bloque plpgsql.
Por eso te menciono START, que es la otra forma de iniciar una
transaccion).
La unica forma de control transaccional que puedes usar en PL/pgSQL son
los bloques EXCEPTION, con los cuales tienes la misma capacidad
semantica que tienes con SAVEPOINTs.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2006-02-08 04:11:47 | Re: Ayuda urgente con transacciones |
Previous Message | Julio Rivero | 2006-02-08 03:10:38 | Re: Ayuda urgente con transacciones |