我正在使用事务将多行插入表中。但是,我仍然看到在 SD 卡上创建临时 sqlite-journal 文件以及 sqlite 表。
如何禁用日志文件的创建?
谢谢
您可以选择将日志保存在内存中,这样就不会创建 -journal 文件:
pragma journal_mode=memory;
请注意,每次打开数据库时都需要运行它。
我建议您阅读以下内容以更好地了解正在发生的事情:
日志是运行事务时使用的内部 SQLite 文件(以确保回滚)。你不能禁用它,你也不想这样做。
请注意,该声明PRAGMA journal_mode=OFF
或对PRAGMA journal_mode=memory
每个交易基础有效。您需要为每笔交易设置它。
您可以使用以下代码删除日志文件
@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);
}
您需要使用光标。游标是一个接口,提供对数据库查询返回的结果集的随机读写访问。如果您使用光标,日志文件将被删除。