当我输入这个查询: 删除邮件中id = 71的所有邮件
SQLite返回以下错误:
SQL error: database is locked
我如何解锁数据库,以便这个查询将工作?
当我输入这个查询: 删除邮件中id = 71的所有邮件
SQLite返回以下错误:
SQL error: database is locked
我如何解锁数据库,以便这个查询将工作?
当前回答
我在应用程序中有这样的问题,从2个连接访问SQLite -一个是只读的,第二个用于写入和读取。看起来这个只读连接阻止了第二个连接的写入。最后,需要在使用后立即完成或至少重置准备好的语句。直到准备语句被打开,导致数据库写入被阻塞。
别忘了打电话:
sqlite_reset(xxx);
or
sqlite_finalize(xxx);
其他回答
我添加了“池=true”连接字符串,它工作。
如果你试图解锁Chrome数据库,用SQLite查看它,然后只需关闭Chrome。
窗户
%userprofile%\Local Settings\Application Data\Google\Chrome\User Data\Default\Web Data
or
%userprofile%\Local Settings\Application Data\Google\Chrome\User Data\Default\Chrome Web Data
Mac
~/Library/Application Support/Google/Chrome/Default/Web Data
我刚刚遇到了类似的情况——我的web应用程序能够从数据库中读取数据,但不能执行任何插入或更新。重启Apache至少暂时解决了这个问题。
不过,如果能找到根本原因就好了。
如果你想删除一个“database is locked”错误,请按照以下步骤执行:
将数据库文件复制到其他位置。 用复制的数据库替换数据库。这将解除对访问数据库文件的所有进程的引用。
由于某种原因,数据库被锁定了。以下是我的解决方法。
我将sqlite文件下载到我的系统(FTP) 删除在线sqlite文件 将文件上传到主机提供商
现在可以正常工作了。