[英]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.