0

我想重命名数据库文件。这些任务似乎很容易。

1) 我关闭数据库 2) 重命名 .db 文件 3) 重命名 .db-journal 文件 4) 我打开数据库

但是,如果前会发生什么。在第 2 步之后和第 3 步之前系统会崩溃(我知道概率很低,但是......)?

我注意到,有时在关闭数据库后,取决于 Android 版本,.db-journal 文件的大小为 0(例如 android 4.0.4),但有时它非常大(例如 .db 文件大小的 50%)(例如 android 4.2 .2)。如果大小为 0,我当然希望没有问题(在提到的场景中丢失 .db 文件可能不会导致任何丢失数据)。但是当 .db-jurnal 文件很大时,是否意味着打开没有 .db-journal 的 .db 文件(它将具有旧名称)会导致任何数据丢失?

有没有办法在一个“事务”中重命名两个文件(要么都重命名,要么都不重命名)?

如果我想共享我的数据库(例如,我想通过电子邮件将其发送给我的朋友)怎么办?是必须发送两个文件 .db 和 .db-journal 还是只发送 .db 文件就足够了?

4

1 回答 1

1

回滚日志文件包含回滚事务所需的信息。

如果在事务处于活动状态时应用程序崩溃,数据库将在下次打开数据库时自动执行回滚。

如果你打开了一个数据库(可能又关闭了),并且没有活动事务,并且你的应用程序没有崩溃并且仍在运行,那么你知道数据库文件处于一致状态,你可以忽略日志文件。(如果日志模式设置为 DELETE,那么将没有-journal文件。)

(注意:在WAL 模式下,您不能忽略该-wal文件。)

于 2014-09-05T07:24:31.500 回答