On Mon, Jun 2, 2008 at 8:12 AM, Alex Katebi <[EMAIL PROTECTED]> wrote:
> Hi Keith,
>
>   Your observation is correct. I did not know that when selecting a table a
> shared lock is aquired by the reader and writes are locked out until the
> last row is read or stmt is finialized. This is true even for in-memory
> database.
>
>   One cure for this problem is to create a temorary table based on the
> result set of the select statement. Then this temp table can be read without
> locking out writers from the original table.
>
> CREATE TABLE t1select AS SELECT * FROM t1;

How about keep trying to write until the database is not busy? Would
that work? Then you only have one copy of the data.

Creating the temp table may be faster than a fancy select statement
but the problem, while less frequent, still remains (reading while the
db is locked for writing).
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to