On 10/26/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:

> This is true of SQLite because isolation in SQLite
> is "SERIALIZABLE".  This is the highest level of isolate
> provided by SQL.  Most client/server database engines
> by default implement "READ COMMITTED".  The value of
> "balance" might change between the SELECT and the
> UPDATE in MySQL, for example.  (I'm less clear about
> what happens in PostgreSQL and Oracle.  The point ism
> that your mileage may vary so be cautious.)

PostgreSQL supports both READ COMMITTED and SERIALIZABLE, but the
out-of-box default is READ COMMITTED.  It can be selected
per-transaction, or changed as a default for all transactions.  I
believe Oracle is similar.

MySQL is a little weird due to different storage engines. From what I
can tell, MyISAM doesn't actually support transactions, so you
essentially get READ UNCOMMITTED if you try; InnoDB supports all 4
levels and defaults to REPEATABLE READ.

The differences between MVCC (Multi-Version Concurrency Control) and
locking -based implementations can also show up in corner cases, so
it's something you definitely want to look at whenever examing a
database engine.

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to