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
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 |