RE: funciones y ROLLBACK

From: Henry <hensa22(at)yahoo(dot)es>
To: Victor Lopez <d01m01a2000(at)gmail(dot)com>, Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: funciones y ROLLBACK
Date: 2007-05-05 18:14:30
Message-ID: 76756.84069.qm@web30809.mail.mud.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Victor Lopez <d01m01a2000(at)gmail(dot)com> escribió: Saludos.

Antes expongo lo que creo saber.

Una función es una transacción.
Acaba con un COMMIT por defecto.
Si se desea cancelar, se debe ejecutar un ROLLBACK antes de salir ... creo.

Si no me equivoco en lo antrior ... porque esto ne da error ?

-- código involucrado -------------
$$
BEGIN
INSERT INTO esquema.tabla(a, b, c, d) VALUES ($1, $2, $3, $4);
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RETURN FALSE;
END;
$$
-----------------------------
-- error que me da -----------------------------------
Warning: pg_query() [function.pg-query]: Query failed: ERROR:
SPI_execute_plan failed executing query "ROLLBACK":
SPI_ERROR_TRANSACTION CONTEXT: PL/pgSQL function "pide_alta" line 6 at
SQL statement in
-------------------------------------------------

Donde me equivoco ??

:-(

--
----o---( )---o----
Saludos de Victor Lopez Sabio
d01m01a2000(at)gmail(dot)com
--------oooo--------

---------------------------(fin del mensaje)---------------------------
TIP 4: No hagas 'kill -9' a postmaster
asi como el commit es implicito, cuado se produce un error el rollback tambien lo es, no es necesario poner rollback.

cuando la funcion termina de forma normal se produce un commit,
cuando se produce algun error se produce un rollback.


---------------------------------

LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2007-05-05 18:33:08 Re: funciones y ROLLBACK
Previous Message Roberto Andrade Fonseca 2007-05-05 18:11:54 Re: desencriptar un password