Re: Transaction Handling in pl/pgsql

Поиск
Список
Период
Сортировка
От Christopher Browne
Тема Re: Transaction Handling in pl/pgsql
Дата
Msg-id m3u0iz25wq.fsf@mobile.int.cbbrowne.com
обсуждение исходный текст
Ответ на Transaction Handling in pl/pgsql  ("Craig Bryden" <postgresql@bryden.co.za>)
Список pgsql-general
> 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?

pl/pgsql code always runs *inside a transaction*.

As a result, if you roll something back, all of the effects of code
inside the transaction will be rolled back.

So you don't need to do anything special for things to roll back.
--
let name="cbbrowne" and tld="acm.org" in String.concat "@" [name;tld];;
http://cbbrowne.com/info/rdbms.html
Rules of  the Evil  Overlord #153.  "My Legions of  Terror will  be an
equal-opportunity employer. Conversely, when  it is prophesied that no
man  can defeat  me, I  will  keep in  mind the  increasing number  of
non-traditional gender roles." <http://www.eviloverlord.com/>

В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Japanese words not distinguished
Следующее
От: Douglas McNaught
Дата:
Сообщение: Re: Transaction Handling in pl/pgsql