Re: A simple question about Read committed isolation level
От | weiping he |
---|---|
Тема | Re: A simple question about Read committed isolation level |
Дата | |
Msg-id | 407FBA23.9090905@qmail.zhengmai.net.cn обсуждение исходный текст |
Ответ на | Re: A simple question about Read committed isolation level (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: A simple question about Read committed isolation level
|
Список | pgsql-general |
Tom Lane 写道: >weiping he <laser@qmail.zhengmai.net.cn> writes: > > >>txn1: txn2: >>begin; begin; >>update table_a set col= col + 1; update table_a set col = col + 1; >>end; end; >> >> > > > >>if two transaction begin at exact the same time, >>what's the result of 'col' after both transactions committed >>in Read committed level? it's 3 or 2? >>My understanding is the result is 3, >> >> > >If the second xact to lock the row is READ COMMITTED, you get 3. >If it's SERIALIZABLE you get an error. In no case will you silently >lose an update. > > dose is mean that I must use some kind of lock ( ... FOR UPDATE for example) to lock that row to get the result 3 in READ COMMITTED level? My understanding is even in MVCC environment, the update action would still be executed sequencly (by means of some kind of lock). What confused me is: in MVCC environment, what's the procedure of postgresql to use lock when two transaction update to the same row at the same time? thanks you. Laser
В списке pgsql-general по дате отправления: