RE: concurrent updates problem
| От | Hiroshi Inoue |
|---|---|
| Тема | RE: concurrent updates problem |
| Дата | |
| Msg-id | EKEJJICOHDIEMGPNIFIJGEFNDOAA.Inoue@tpf.co.jp обсуждение исходный текст |
| Ответ на | Re: concurrent updates problem (Tom Lane <tgl@sss.pgh.pa.us>) |
| Список | pgsql-general |
> -----Original Message----- > From: Tom Lane > > >> I have on a web application > >> update threads set views = views + 1 where forum_id = 1 and > thread_id = 1 > > It should work to do > > begin; > select * from threads where forum_id = 1 and thread_id = 1 FOR UPDATE; > update threads set views = views + 1 where forum_id = 1 and thread_id = 1; > end; > > Note the FOR UPDATE to lock the row and the transaction wrapping to > define the scope of the lock. ISTM this is not the case that 'FOR UPDATE' is required. > Without this I'd expect you to lose > some counter increments as a result of two processes doing the UPDATE > at about the same time (both will read the old value of "views" and > increment it by one). > If this is true, it's really a serious bug and must be fixed. regards, Hiroshi Inoue
В списке pgsql-general по дате отправления: