Re: Buggy SELEC ... FROM UPDATE ?

Поиск
Список
Период
Сортировка
От Patrice Espié
Тема Re: Buggy SELEC ... FROM UPDATE ?
Дата
Msg-id 008901c0c1cc$9c99ace0$0400a8c0@univlyon2.fr
обсуждение исходный текст
Ответ на Re: Buggy SELEC ... FROM UPDATE ?  (Helge Bahmann <bahmann@math.tu-freiberg.de>)
Список pgsql-novice
----- Original Message -----
From: "Helge Bahmann" <bahmann@math.tu-freiberg.de>
To: "Patrice Espié" <patrice.espie@univ-lyon2.fr>
Cc: <pgsql-novice@postgresql.org>
Sent: Tuesday, April 10, 2001 4:39 PM
Subject: Re: [NOVICE] Buggy SELEC ... FROM UPDATE ?


> All locks are released when you commit your transaction.
>
> > boolean Got = false
> > while Got == false
> >     Start transaction
> >     SELECT * FROM syslock WHERE id=%d AND used='f' FOR UPDATE
> the row is locked here ...
> >     if SELECT returns a row
> >     then
> >         UPDATE syslock SET used='t' WHERE id=%d
> >         Commit transaction
> ... and released again here; probably not what you want
Sure, I want to release it : the other users MUST be free to go away instead
of being locked if they try to lock anything already locked
> >         Got = true
> >     else
> >         Rollback transaction
> >         continue // yes, active wait ... I'm testing !
> >     end if
> > end while
> > Trace "I get the syslock number %d !!"
> > Do something with the syslock %d which is now reserved
> > UPDATE syslock SET used='f' WHERE id=%d
> should move your "commit transaction" here
>
> have fun
> helge
Another idea, please !!
Thank's


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

Предыдущее
От: Helge Bahmann
Дата:
Сообщение: Re: Buggy SELEC ... FROM UPDATE ?
Следующее
От: "charlie derr"
Дата:
Сообщение: RE: how to run postgre on winNT