Обсуждение: plpgsql

Поиск
Список
Период
Сортировка

plpgsql

От
Jie Liang
Дата:
I 've a question about begin...end in plpgsql
does
sql stmts in
begin
....
end;
will go one transaction?

i.e.
begin...end have same meaning as sql stmts BEGIN...COMMIT??
if failed, transaction abort?
if select..for update is used then
another update stmt will wait on the same rows??


if begin...end in plpgsql connot have same functionality as
sql, how can I ensure my sql stmts go one transaction??

thanks.




Jie LIANG

St. Bernard Software

10350 Science Center Drive
Suite 100, San Diego, CA 92121
Office:(858)320-4873

jliang@ipinc.com
www.stbernard.com
www.ipinc.com



Re: plpgsql

От
Roberto Mello
Дата:
On Fri, Apr 20, 2001 at 04:58:02PM -0700, Jie Liang wrote:
> 
> I 've a question about begin...end in plpgsql
> does
> sql stmts in
> begin
> ....
> end;
> will go one transaction?
Read the documentation (programmer's guide). It's all there. It's to
answer your questions that we take the time to write docs in the first
place :)Short answer: everything in your function is executed in one
transaction. BEGIN and END in PL/pgSQL are NOT the same as in the
transaction semantics.
-Roberto
-- 
+----| http://fslc.usu.edu USU Free Software & GNU/Linux Club |------+ Roberto Mello - Computer Science, USU -
http://www.brasileiro.net      http://www.sdl.usu.edu - Space Dynamics Lab, Developer    
 
If at first you don't succeed, destroy all evidence that you tried.


Re: plpgsql

От
Jie Liang
Дата:
Roberto,

Thanks for your help, I read the docs.
I am still not entire sure, my problem is in my plpgsql function
I used
for rec in select ... for update loop
update stmt
end loop;

I don't want above chosen rows be selected(i.e. I want them to be lock
exclusively) by another user until transaction done.

do I need an explicit LOCK stmt?
can it be used in the plpgsql function??

Thanks again.


Jie LIANG

St. Bernard Software

10350 Science Center Drive
Suite 100, San Diego, CA 92121
Office:(858)320-4873

jliang@ipinc.com
www.stbernard.com
www.ipinc.com

On Fri, 20 Apr 2001, Roberto Mello wrote:

> On Fri, Apr 20, 2001 at 04:58:02PM -0700, Jie Liang wrote:
> > 
> > I 've a question about begin...end in plpgsql
> > does
> > sql stmts in
> > begin
> > ....
> > end;
> > will go one transaction?
> 
>     Read the documentation (programmer's guide). It's all there. It's to
> answer your questions that we take the time to write docs in the first
> place :)
>     Short answer: everything in your function is executed in one
> transaction. BEGIN and END in PL/pgSQL are NOT the same as in the
> transaction semantics.
> 
>     -Roberto
> -- 
> +----| http://fslc.usu.edu USU Free Software & GNU/Linux Club |------+
>   Roberto Mello - Computer Science, USU - http://www.brasileiro.net 
>        http://www.sdl.usu.edu - Space Dynamics Lab, Developer    
> If at first you don't succeed, destroy all evidence that you tried.
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>