可以删除SQLite3数据库文件,并且仍然可以访问

Sqlite3 database file can be deleted and is still accessible

本文关键字:访问 文件 删除 SQLite3 数据库      更新时间:2023-10-16

我在我的rtos系统中使用sqlite3。我已经设置了配置,使其可以锁定每个事务。在我的系统上,我最终在驱动器上添加一个文件

" sqldb.db"

有交易时,如果您足够快,通常可以看到锁定文件。" sqldb.db.lock"。

让我疯狂的是,当我删除" sqldb.db"时,我仍然可以从数据库中进行选择,但是我无法插入。这不是缓存的问题,因为我可以在多个表上进行选择(在重新启动系统之前,我还没有对此进行任何操作(。

所以我的问题是,数据库文件是被缓存的吗?它保存在RAM某个地方吗?如何查询此幽灵数据库?

在unix中,当您删除文件时,立即删除目录条目,但是仅在关闭所有打开文件处理时才删除实际文件数据。

显然,您的RTO行为相同。