Keith,

   For normal operations the writer will wait until the reading is done. But
I have a client that is remote and is very slow and could sit on a select
statement indefinitly.  In this case I would need to create a temp table.
Thanks,
-Alex


On Mon, Jun 2, 2008 at 11:53 AM, Keith Goodman <[EMAIL PROTECTED]> wrote:

> 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
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to