繁体   English   中英

Python sqlite3数据库已锁定

[英]Python sqlite3 database locked

我在Windows上使用Python 3和sqlite3。 我正在开发一个使用数据库存储联系人的小型应用程序。 我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。

我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。 我已经试过了:

    connection = sqlite3.connect(dbFile.db)
    connection.commit()
    connection.close()

然后尝试重新打开连接,但是锁定的数据库仍然存在。 无论如何,有没有在崩溃前关闭数据库? 还是在应用程序中解锁数据库的方法? 现在,我唯一的解决方案是删除数据库并重新开始(长期来看这实际上不会起作用)。

谢谢!

如果您的应用程序被强制关闭,很可能您不想提交当前事务,而是回滚以确保没有中断?

捕获到关闭信号后,请尝试以下操作:

connection.rollback()
connection.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM