我有三个程序正在运行,其中一个程序在我的数据库中不停地迭代(在循环中一遍又一遍),只需使用SELECT
语句从中读取。
其他程序有一行,他们在表中插入一行,并在一行中删除它。问题是,我经常收到错误sqlite3.OperationalError: database is locked
。
我试图找到一个解决方案,但我不明白问题的确切来源(同时读取和写入是什么导致此错误发生?或者写入和删除?可能两者都有不应该工作。
无论哪种方式,我都在寻找解决方案。如果它是一个单独的程序,我可以将数据库I / O与互斥锁和其他多线程工具相匹配,但事实并非如此。如何在不使用太多CPU的情况下等待数据库解锁以进行读/写/删除?
答案 0 :(得分:0)
你需要切换数据库..
我会使用以下内容: postgresql作为我的数据库 psycopg2作为驱动程序
语法与SQLite非常相似,迁移对你来说不应该太难