阅读SQLite文档here,当进程想要写入SQLite数据库时,它会获得一个保留锁。然后,一旦进程准备好写入磁盘,它就会获得挂起锁,在此期间没有新进程可以获得共享锁,但允许现有共享锁完成其业务。一旦剩余的共享锁清除,该进程就可以写入。
然而......当我尝试编写数据库而其他进程正在从该数据库读取时,我只是立即得到“错误:数据集被锁定”。
sqlite> insert into meta_models (model) values ("hello_world");
Error: database is locked
为什么SQLite不执行上面列出的等待共享锁清除的步骤?