From: | Manuel Rabade <mig(at)mig-29(dot)net> |
---|---|
To: | Victor Chavez <vchavezp(at)yahoo(dot)com> |
Cc: | pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx |
Subject: | Re: [Pgsql-ayuda] Duda con funciones y Transacciones |
Date: | 2003-11-29 20:13:36 |
Message-ID: | 20031129201336.GA12063@mig-29.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Sat, Nov 29, 2003 at 12:07:24PM -0600, Victor Chavez wrote:
> Hola a todos.
>
> Hace poco empece a desarrollar un sistema teniendo
> como base de datos a PostgreSQL. La funciones de la
> base de datos las estoy haciendo en Pl/PgSql. Todo
> esta muy bien, la base de datos se ha comportado de
> manera rapida y eficiente. La duda que tengo es que en
> una parte de la documentacion de Pl/pgsql dice que las
> funciones no soportan transacciones; si tengo un
> conjunto de instrucciones en una funcion que afectan a
> varias tablas y por alguna razon ya sea de software o
> hardware el proceso se aborta... que ocurre? Por
> definicion una transaccion BEGIN... COMMIT, se hace
> todo el conjunto o no se hace. Que pasa con unae
> funcion si por alguna razon no se llega al final de
> todas sus instrucciones?
>
> Esto es lo que dice la documentacion:
>
> It is important not to confuse the use of BEGIN/END
> for grouping statements in PL/pgSQL with the database
> 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
> transactions, since PostgreSQL does not have nested
> transactions.
>
> La parte que dice que las funciones y los triggers son
> ejecutados dentro de una transaccion establecida por
> un a consulta externa... que implica?
En conjunto lo que la documentacion quiere decir es que Postgres no soporta
transacciones anidadas, es decir, no puedes iniciar una transaccion y dentro
de esta transaccion iniciar otra, por eso dentro de los triggers y funciones no
puedes iniciar una transaccion, se supone que debes iniciarla desde el cliente
de postgres, y asi lo que se invoque durante esa transaccion es controlado (tanto
instrucciones sql, funciones, triggers, etc).
Saludos.
From | Date | Subject | |
---|---|---|---|
Next Message | Heber Lazcano Camargo | 2003-11-29 20:40:05 | [Pgsql-ayuda] Cambiar Base de Datos |
Previous Message | Alvaro Herrera | 2003-11-29 19:51:49 | Re: [Pgsql-ayuda] Duda con funciones y Transacciones |