> 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 is
> that your mileage may vary so be cautious.)

PostgreSQL uses "READ COMMITTED" by default as well (each statement
acquires a new snapshot).

However, PostgreSQL does not implement true SERIALIZABLE semantics
because of the phantom problem (transaction outcome depends on the
absence of certain rows--but no lock can be acquired on them, so they
might be added by a parallel transaction, resulting in a
non-serializable history).

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

Reply via email to