首次打开数据库时,SQLite表被锁定的原因是什么?

时间:2015-05-21 02:58:10

标签: sqlite locking

首次打开数据库时,在什么情况下可以锁定表?

我的计划确实:

DROP TABLE IF EXISTS
CREATE TABLE
INSERT INTO (multiple times)
SELECT * (for each row)

运行一次,效果很好。运行两次,DROP TABLE触发错误:

SQLITE_LOCKED, database table is locked

删除数据库并再次运行它并且有效。只有一次。

文档中没有任何内容告诉我在首次打开数据库时如何锁定表。我在Windows上使用原始C接口,那么我可能做错了什么?

代码实际上是用C#编写的,但是使用Interop直接调用C API。 数据库打开代码如下所示。没有使用开放标志。

LastResult = (Result)sqlite3_open(path, out _dbhandle);

0 个答案:

没有答案