首次打开数据库时,在什么情况下可以锁定表?
我的计划确实:
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);