如何禁用Android SQLite Journal文件?

时间:2012-04-06 16:56:08

标签: android sqlite journal

我正在使用事务将多行插入表中。但是,我仍然看到在SD卡上创建临时sqlite-journal文件以及sqlite表。

如何禁用日记文件的创建?

由于

4 个答案:

答案 0 :(得分:8)

您可以选择将日志保留在内存中,以便不创建-journal文件:

pragma journal_mode=memory;

请注意,每次打开数据库时都需要运行它。

我建议您阅读以下内容以更好地了解正在发生的事情:

http://www.sqlite.org/pragma.html#pragma_journal_mode

答案 1 :(得分:5)

日志是运行事务时使用的内部SQLite文件(以确保回滚)。你不能禁用它,而你也不想这样做。

答案 2 :(得分:1)

请注意,声明PRAGMA journal_mode=OFFPRAGMA journal_mode=memory对每个交易基础有效。您需要为每笔交易设置它。

答案 3 :(得分:-1)

您可以使用以下代码删除日记文件

@Override
public void onOpen(SQLiteDatabase db) {         
    Cursor cc = db.rawQuery("PRAGMA journal_mode=DELETE",null);
    Log.i(TAG,"--- cursor count " + cc.getCount());     
    super.onOpen(db);        
}

您需要使用光标。 Cursor是一个接口,提供对数据库查询返回的结果集的随机读写访问。 如果使用光标,日志文件将被删除。