I've been reading up on transactions, among other things, in preparation for the SCAE certification, but I came across something that confused me. I was reading an article discussing transactions and when I came across the explanation on TRX_REPEATABLE_READ, I got a bit confused. Here's the snippet...
TRANSACTION_REPEATABLE_READ: This level ensures that reading the same data multiple times will receive the same value even if another transaction modifies the data.
The author mentions "even if another transaction modifies the data", but does this mean modify and commit, or just modify within the context of another transaction, essentially uncommitted. What would be the point of using this isolation level if other transactions can change the same data selected in the current transaction? I would think that, for example, when you withdraw money from your bank account, the ATM selects your current account balance to ensure your have sufficient funds, and this account balance cannot change during the span of the withdrawal, for obviously reasons.
I thought the behavior of TRX_REPEATBLE_READ was to allow the same transaction to re-read a row and obtain the same values for that row, which must mean that other transactions can read, but cannot commit changes to that same data until the current transaction either commits or rollbacks.
shed some light, please :-P