Как отключить файл Android SQLite Journal?
Я использую транзакции для вставки нескольких строк в таблицу. Но я все еще вижу временный файл sqlite-journal, создаваемый на SD-карте вместе с таблицей sqlite.
Как отключить создание файла журнала?
Спасибо
4 ответа
Вы можете сохранить журнал в памяти, чтобы не создавать файл -журнала:
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);
}
Вам нужно использовать курсор. Курсор - это интерфейс, обеспечивающий произвольный доступ для чтения и записи к набору результатов, возвращаемому запросом к базе данных. Файл журнала будет удален, если вы используете курсор.