Re: Ayuda urgente con transacciones

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

In response to

Browse pgsql-es-ayuda by date

  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