> 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] -----------------------------------------------------------------------------