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