Re: transacciones y funciones plpgsql

From: "Juan Romero" <jgromero(at)gmail(dot)com>
To: "Carlos Mendez" <lucas1850(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: transacciones y funciones plpgsql
Date: 2008-04-02 16:01:18
Message-ID: 3c7410400804020901p45a8efeycffed550c5479e1a@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Wed, Apr 2, 2008 at 10:07 AM, Carlos Mendez <lucas1850(at)gmail(dot)com> wrote:
>
> Hola, que tal,
>
> tengo una duda, tengo una funcion plpgsql que inserta datos en 2 tablas
> diferentes, ahora ¿es posible que la primera se inserte correctamente y no
> la segunda debido a cualquier motivo, un error, etc? lo que deseo es que se
> inserte los datos en las 2 tablas o en ninguna, para esto creo que tengo que
> utilizar transacciones pero el manual dice que plpgsql no acepta
> transacciones porque las funciones son siempre ejecutadas dentro de una
> transaccion, ¿significa lo anterior que todos los execute sql dentro de la
> funcion se deben ejecutar correctamente o ninguno se ejecutara?
> En esencia quisiera saber si una funcion plpgsql se ejecuta al igual que una
> transaccion, o se ejecuta todo correctamente o no se ejecuta nada.
>
> Gracias de antemano por la respuesta,
> saludos a todos.

Efectivamente se ejecutarán todos o ninguno.

"It is important not to confuse the use of BEGIN/END for grouping
statements in PL/pgSQL with the similarly-named SQL commands for
transaction control. PL/pgSQL's BEGIN/END are only for grouping; they
do not start or end a transaction. Functions and trigger procedures
are always executed within a transaction established by an outer query
— they cannot start or commit that transaction, since there would be
no context for them to execute in. However, a block containing an
EXCEPTION clause effectively forms a subtransaction that can be rolled
back without affecting the outer transaction."

http://www.postgresql.org/docs/8.3/interactive/plpgsql-structure.html

Saludos,

Juan Romero

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2008-04-02 16:01:43 Re: Consulta sobre funciones en la version 8.3.1
Previous Message Carlos Mendez 2008-04-02 15:07:13 transacciones y funciones plpgsql