当前位置: 首页 > 知识库问答 >
问题:

当其他进程从SQLite数据集读取时写入该数据集

边浩漫
2023-03-14

在这里阅读SQLite文档时,当进程想要写入SQLite数据库时,它会获得一个保留的锁。然后,一旦进程准备好写入磁盘,它就会获得一个挂起的锁,在此期间,没有新的进程可以获得共享锁,但允许现有的共享锁完成它们的业务。一旦剩余的共享锁清除,进程就可以写。

然而,当我试图编写一个数据库,而其他进程正在从该数据库中读取时,我只会立即得到一个“错误:dataset被锁定”。

sqlite> insert into meta_models (model) values ("hello_world");
Error: database is locked

为什么SQLite不执行我上面概述的等待共享锁清除的步骤呢?

共有1个答案

太叔炎彬
2023-03-14

SQLite确实经历了这些步骤,但它在等待剩余的共享锁清除时超时了。

您可以使用PRAGMA busy_timeout调整此超时。

 类似资料:
  • 我使用spring批处理,其中步骤1是从数据库读写到列表,然后有步骤2从阅读器从列表读写到数据库,处理和写到数据库,步骤3将从列表读写,处理和写到数据库。

  • 问题内容: 我有一个俗称“条件名称”(已从服务器生成.sql文件) 但是在android中,从该表读取数据时出现以下异常。 12-24 14:34:00.870:W / System.err(269):android.database.sqlite.SQLiteException:无此类列:条件:, 编译时: 选择条件,类别,子类别,条件名称,本地路径,远程路径,标题,content_type F

  • 我正在尝试将MovieLens数据集复制到Python中的Pandas数据帧中。 但是,当我执行上述操作时,会出现以下错误。 UnicodeDecodeError回溯(最近一次调用)pandas/_libs/解析器。大熊猫中的pyx_图书馆。解析器。文本阅读器_转换_代币() 熊猫/_libs/parsers.pyx。_libs.parsers.文本阅读器。_convert_with_dtype(

  • 默认情况下,Hadoop在文件的块边界上拆分映射器要处理的文件。也就是说,这就是FileInputFormat实现为getSplits()所做的事情。然后,Hadoop确保映射器要处理的块被复制到映射器运行的Datanode上。 现在我想知道,如果我需要在InputSplit外部读取(在RecordReader中,但这是不相关的),与在InputSplit内部读取相比,这花费了我多少钱--假设它外

  • 我已成功地将数据保存在SQLite DB中。但我在从SQLite数据库读取数据时出现了一个错误,然后我的应用程序崩溃了。 错误信息 如果你需要任何其他信息,请告诉我。

  • 我已经花了几个小时阅读产品分支中的0和1。请在Firebase数据库有经验的人帮助我:(