トランザクションを使用して、テーブルに複数の行を挿入しています。しかし、私はまだ一時的なsqlite-journalファイルがsqliteテーブルと一緒にSDカード上に作成されているのを目にします。
ジャーナルファイルの作成を無効にするにはどうすればよいですか?
ありがとう
-journal ファイルが作成されないように、ジャーナルをメモリに保持することを選択できます。
pragma journal_mode=memory;
データベースを開くたびにこれを実行する必要があることに注意してください。
何が起こっているのかをよりよく理解するために、以下を読むことをお勧めします。
ジャーナルは、トランザクションの実行時に使用される内部 SQLite ファイルです (確実にロールバックするため)。無効にすることはできませんし、したくありません。
以下のコードを使用してジャーナルファイルを削除できます
@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 は、データベース クエリによって返される結果セットへのランダムな読み取り/書き込みアクセスを提供するインターフェイスです。カーソルを使用すると、ジャーナル ファイルが削除されます。