我正在使用事务将多行插入表中。但是,我仍然看到在SD卡上创建临时sqlite-journal文件以及sqlite表。
如何禁用日记文件的创建?
由于
答案 0 :(得分:8)
您可以选择将日志保留在内存中,以便不创建-journal文件:
pragma journal_mode=memory;
请注意,每次打开数据库时都需要运行它。
我建议您阅读以下内容以更好地了解正在发生的事情:
答案 1 :(得分:5)
日志是运行事务时使用的内部SQLite文件(以确保回滚)。你不能禁用它,而你也不想这样做。
答案 2 :(得分:1)
请注意,声明PRAGMA journal_mode=OFF
或PRAGMA 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是一个接口,提供对数据库查询返回的结果集的随机读写访问。 如果使用光标,日志文件将被删除。