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 по дате отправления: