Re: Transaciones en pl/pgsql

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: v13n35(at)gmail(dot)com
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Transaciones en pl/pgsql
Date: 2005-01-13 20:28:43
Message-ID: 20050113202843.GA11197@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Thu, Jan 13, 2005 at 12:46:35PM -0600, viernes wrote:

Hola,

> 1.- Imagino que en una funcion de pl/pgsql esta dentro de una
> transacion por el begin y end o hay que indicarlo ????

Imaginas bien pero por un mal motivo. Los BEGIN/END de las funciones en
pl/pgsql no son inicio/termino de transaccion; son constructos que
indican inicio y termino de un bloque de codigo plpgsql, equivalentes a
los { y } de bloques en C, Perl y otros lenguajes.

En una funcion plpgsql, y en cualquier otro lenguaje, no puedes abrir
una nueva transaccion ni cerrar la transaccion en curso. Ni siquiera
esta permitido definir un savepoint en 8.0; el mecanismo para esto es
usar la clausula EXCEPTION.

> 2.- Si lo anterior es verdad y llamo una funcion dentro de otra
> trabajan de manera conjunta las transaciones o se pierden

No ha lugar.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"La rebeldía es la virtud original del hombre" (Arthur Schopenhauer)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Esteban Osorio 2005-01-13 20:30:37 RE: Para quien me pueda ayudar...
Previous Message Esteban Osorio 2005-01-13 20:26:00 RE: Para quien me pueda ayudar...