Как отключить файл Android SQLite Journal?

Я использую транзакции для вставки нескольких строк в таблицу. Но я все еще вижу временный файл sqlite-journal, создаваемый на SD-карте вместе с таблицей sqlite.

Как отключить создание файла журнала?

Спасибо

4 ответа

Решение

Вы можете сохранить журнал в памяти, чтобы не создавать файл -журнала:

pragma journal_mode=memory;

Обратите внимание, что вам нужно запускать это каждый раз, когда вы открываете базу данных.

Я рекомендую вам прочитать следующее, чтобы лучше понять, что происходит:

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

Журнал является внутренним файлом 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);        
}

Вам нужно использовать курсор. Курсор - это интерфейс, обеспечивающий произвольный доступ для чтения и записи к набору результатов, возвращаемому запросом к базе данных. Файл журнала будет удален, если вы используете курсор.

Другие вопросы по тегам