在这里的Python sqlite3文档中,我看到默认的超时是5秒。我不需要指定超时就可以连接。python 3.7
我有两个python进程,它们写到同一个DB。此file.db处于WAL模式。我在那里看到了两个文件-shm和-wal。
我得到了这个异常sqlite3.Error: 'database is locked'
在此异常发生时,另一个进程已经完成了它的事务(从with
上下文管理器中取出),并与signal.pause
一起入睡--该文件位于本地安装的常规硬盘上。
我怎样才能调查除了做什么之外还发生了什么:
我确实假定,任何其他写入过程都只在数据库执行事务时锁定数据库。一旦它完成,它就会释放锁。
此外,在WAL模式下,事情是否应该以不同的方式运作?
https://stackoverflow.com/questions/59572453
复制相似问题