On 09/26/2013 10:00 PM, Simon Slavin wrote:
On 26 Sep 2013, at 3:45pm, Dan Kennedy <danielk1...@gmail.com> wrote:

Sounds right. BEGIN EXCLUSIVE obtains an exclusive lock on
the db. If this succeeds, no other connection to the same database
will be able to successfully execute BEGIN EXCLUSIVE until
your first connection has concluded its transaction or closed
the database handle.
EXCLUSIVE implies IMMEDIATE, right ?  Just thought it was worth checking.

It does. Both open a write transaction on the database. In the\
parent posts case either would work.

In WAL mode they are the same thing. But in rollback mode EXCLUSIVE grabs an
exclusive lock. Locking out readers as well as other writers. IMMEDIATE
just grabs the reserved lock - locking out other writers but allowing
other clients to read.


$ ./sqlite3 abc.db
SQLite version 3.8.1 2013-09-26 15:21:16
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> BEGIN EXCLUSIVE;
sqlite> PRAGMA lock_status;
main|exclusive
temp|closed
sqlite> COMMIT;
sqlite> BEGIN IMMEDIATE;
sqlite> PRAGMA lock_status;
main|reserved
temp|closed


_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to