私はREAD_ONLY
モードで開かれたSQLiteデータベースがあります。仮想テーブルの作成にOPEN_READWRITEモードが必要なのはなぜですか?
db = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.READ_ONLY);
と私はこのような仮想テーブルを作成しています:
db.execSQL("CREATE VIRTUAL TABLE fts_table USING fts3 (name, definition)");
はしかし、これはエラーを与える:
android.database.sqlite.SQLiteReadOnlyDatabaseException: attempt to write a readonly database (code 8)
OPEN_READWRITE
モードを使用すると、操作は成功します。
OPEN_READWRITE
モードを必要とする仮想テーブルを作成するのはなぜですか?私は、仮想テーブルが "仮想"であると考えました。つまり、テーブルはディスク上のデータベースに書き込まれませんでしたか?
仮想テーブルを作成するにはOPEN_READWRITE
モードが必要な場合、このテーブルはどこに書き込まれますか?同じデータベースファイルか、別の一時データベースファイルですか?