首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当没有其他python进程同时写入时,sqlite数据库为什么会被锁定?

当没有其他python进程同时写入时,sqlite数据库为什么会被锁定?
EN

Stack Overflow用户
提问于 2020-01-03 02:18:50
回答 1查看 225关注 0票数 0

在这里的Python sqlite3文档中,我看到默认的超时是5秒。我不需要指定超时就可以连接。python 3.7

我有两个python进程,它们写到同一个DB。此file.db处于WAL模式。我在那里看到了两个文件-shm和-wal。

我得到了这个异常sqlite3.Error: 'database is locked'

在此异常发生时,另一个进程已经完成了它的事务(从with上下文管理器中取出),并与signal.pause一起入睡--该文件位于本地安装的常规硬盘上。

我怎样才能调查除了做什么之外还发生了什么:

  1. 我可以在myfile.db上查看fuser -v

我确实假定,任何其他写入过程都只在数据库执行事务时锁定数据库。一旦它完成,它就会释放锁。

此外,在WAL模式下,事情是否应该以不同的方式运作?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59572453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档