Re: pgsql & transaction doubt
От | A. Kretschmer |
---|---|
Тема | Re: pgsql & transaction doubt |
Дата | |
Msg-id | 20070126074853.GB15591@a-kretschmer.de обсуждение исходный текст |
Ответ на | pgsql & transaction doubt (Luca Ferrari <fluca1978@infinito.it>) |
Список | pgsql-novice |
am Fri, dem 26.01.2007, um 8:39:16 +0100 mailte Luca Ferrari folgendes: > Hi all, > a little doubt that came into my mind reading the official manual (chapter 37, > page 677): "functions and trigger procedures are always executed within a > transaction established by an outer query". What does "outer" means? If I'd > like a function to be execute within a transaction should I manually begin > and end the transaction or is the procedure code always executed in a kind of > subtransaction? I mean, supposing a function raises an exception, what > happens to all the sql statement issued by the function before the exception? > Are they automatically rollbacked? If you call a function "select my_function(param1, param2);", then is this select the 'outer' query and starts a transaction. An exception within the function rollback the whole function. If you have a code like this: begin; insert into foo ... select my_function(param1, param2); commit; and the function fails, then fails also the insert before your function. Andreas -- Andreas Kretschmer Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header) GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net
В списке pgsql-novice по дате отправления: