Re: A simple question about Read committed isolation level - Mailing list pgsql-general

From weiping he
Subject Re: A simple question about Read committed isolation level
Date
Msg-id 407FBA23.9090905@qmail.zhengmai.net.cn
Whole thread Raw
In response to Re: A simple question about Read committed isolation level  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: A simple question about Read committed isolation level
List 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 by date:

Previous
From: "Bruno BAGUETTE"
Date:
Subject: Parse error a in short stored procedure : What's wrong ?
Next
From: Andrew Sullivan
Date:
Subject: Re: Mirroring tables from Oracle to Postgresql