我有一个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
模式创建一个虚拟表,那么这个表写在哪里?它是对同一个数据库文件还是对一个单独的临时数据库文件?