我有一個SQLite數據庫中READ_ONLY
模式打開:爲什麼創建虛擬表需要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
模式創建一個虛擬表,那麼這個表寫在哪裏?它是對同一個數據庫文件還是對一個單獨的臨時數據庫文件?