Python sqlite3数据库已锁定

时间:2019-03-25 08:55:04

标签: python python-3.x sqlite

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

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

connection.rollback()
connection.close()