|
|
|
@ -417,8 +417,8 @@ |
|
|
|
|
does not see effects of those commands on other rows in the database. |
|
|
|
|
This behavior makes Read Committed mode unsuitable for commands that |
|
|
|
|
involve complex search conditions; however, it is just right for simpler |
|
|
|
|
cases. For example, consider updating bank balances with transactions |
|
|
|
|
like: |
|
|
|
|
cases. For example, consider transferring $100 from one account |
|
|
|
|
to another: |
|
|
|
|
|
|
|
|
|
<screen> |
|
|
|
|
BEGIN; |
|
|
|
@ -427,8 +427,8 @@ UPDATE accounts SET balance = balance - 100.00 WHERE acctnum = 7534; |
|
|
|
|
COMMIT; |
|
|
|
|
</screen> |
|
|
|
|
|
|
|
|
|
If two such transactions concurrently try to change the balance of account |
|
|
|
|
12345, we clearly want the second transaction to start with the updated |
|
|
|
|
If another transactions concurrently tries to change the balance of account |
|
|
|
|
7534, we clearly want the second statement to start with the updated |
|
|
|
|
version of the account's row. Because each command is affecting only a |
|
|
|
|
predetermined row, letting it see the updated version of the row does |
|
|
|
|
not create any troublesome inconsistency. |
|
|
|
|