微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python,sqlite错误? db被锁定了吗?但它不是吗?

我的sqlite3数据库中出现“数据库表被锁定”错误.我的脚本是单线程的,没有其他应用程序正在使用该程序(我确实在“SQLite Database Browser.exe”中打开了一次).我复制了文件,del原始(成功)并重命名了副本,所以我知道没有进程锁定它当我运行我的脚本时,表B中的所有内容都无法写入,看起来表A很好.发生了什么?

-编辑-
我修好了但不确定如何.我注意到代码没有做正确的事情(我复制了错误的字段),在修好并清理之后,它神奇地再次开始工作.

-edit2-

其他人发布,所以我不妨更新.我认为问题是我试图使用命令/光标进行声明.

解决方法:

我之前也遇到过这个问题.当光标和连接打开然后程序崩溃然后才能正确关闭它时,通常会发生这种情况.在某些情况下,可以使用以下函数来确保数据库已解锁,即使它未事先正确提交和关闭也是如此:

from sqlite3 import dbapi2 as sqlite


def unlock_db(db_filename):
    """Replace db_filename with the name of the SQLite database."""
    connection = sqlite.connect(db_filename)
    connection.commit()
    connection.close()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐