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