NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
I would imagine something like this: (Score:1)
Fred and Mary start with:
Fred starts a transaction and updates the first two rows so the table that looks like:
In the mean time Mary has started and finished a transaction that updates the third row:
which means that Fred is seeing the "old" version of row three, and the table as a whole reflects something that will never have existed in the database.
Make sense?
Reply to This
Re: (Score:2)
Oh! I replied to Aristotle without thinking too carefully about your reply. I can see how this could occur, but it's problematic because then things aren't atomic. If you take actions based upon this, you can still corrupt your data. You update row 3 because 'C' is there, but it's really not. Now you have a race condition because consistent reads aren't. Or did I misunderstand something?
Re: (Score:1)
Re: (Score:1)
Re: (Score:1)
I don't have a MySQL database to play with, but if that was Oracle then by default in your situation, Fred will see a Z in the third row. The reason is that consistent reads are consistent at the statement level, not the transaction level. So you see changes that have been committed after your transaction started, but before your statement began.
The technical reason for this is that with Oracle's implementation, consistent reads have to be done b
Re: (Score:1)