Transaction Handling in pl/pgsql?

From: Nee(dot)mem(倪明) <neemem(at)atlas-china(dot)com>
To: "pgsql-general" <pgsql-general(at)postgresql(dot)org>
Subject: Transaction Handling in pl/pgsql?
Date: 2005-07-13 04:56:00
Message-ID: ATLAS-MAILd9Ee4zadT000001ac@atlas-mail.atlas-mail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

pgsql-general,

   On 7/12/05, Craig Bryden <postgresql ( at ) bryden ( dot ) co ( dot ) za> wrote:
> Hi
>
> I am trying to get a better understanding of how transactions work in
> pl/pgsql functions. I found the following text in the help:
> "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"
> but I am still a bit confused.
>
> Suppose I have a function that will be called from an application. Will all
> the statements in the function be rolled back if the last one generates an
> exception? or do I need to add code to a function to make that happen?
>
>

>suppose you have: select your_function();

>your_function adds some rows but the last one gives an error, because
>all statements that are out of a transaction block are in its own
>transaction the select calling your_function is inside a
>transaction... so, the answer is yes... the statements inside the
>function will be rolled back

How to use rollback work in pl/pgsql functions.? Give an example

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Jean-Max Reymond 2005-07-13 05:18:32 Re: Projecting currentdb to more users
Previous Message Nee.mem (倪明) 2005-07-13 04:42:31 How to use rollback in function with 'pgsql'?