Re: lock - feedback
| От | Thomas Rokohl |
|---|---|
| Тема | Re: lock - feedback |
| Дата | |
| Msg-id | 434D2304.3090501@raygina.de обсуждение исходный текст |
| Ответ на | Re: lock - feedback ("Merlin Moncure" <merlin.moncure@rcsonline.com>) |
| Список | pgsql-odbc |
Merlin Moncure wrote: > select user_write_lock(oid) from my_table where value = x; > returns 1 on success, 0 on failure. > > just be careful... > select user_write_lock(oid) from my_table where value = x order by y > limit 1; > can acquire more locks than you might think since the table has to be > materialized to do the order. > > better to write: > > select user_write_lock(oid) from > ( > select oid, * from my_table where value = x order by y limit 1; > ) > > also, don't use oid :). In my applications, I make a domain type called > 'cuid' which pulls nextval() from a public sequence. Put that into your > tables and lock on it. Just watch for dump/restore. > > Merlin > > > ok i understand, thanks. that work's. but i'm a little bit confused. this problem is, from my point of view, a highly frequently appearing problem. on all places where it can be that two users edit the same record, the "lost update" problem or the "waiting" problem ;-) can be appeared. and this is not rare i think. your solution is good and works surely <http://dict.leo.org/se?lp=ende&p=lURE.&search=surely> fine( i will test it ), but it is also unhandy. my opinion is that this problem should be solved by the database and not by the user, so i think it is a good point for a wish list ;-).
В списке pgsql-odbc по дате отправления: