В какой момент виртуальные таблицы наполняются

«В какой момент виртуальные таблицы наполняются» — вопрос из категории ООП, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Виртуальные таблицы в SQLite (например, FTS3, FTS4, FTS5) наполняются данными в момент их создания или при явном вызове команды INSERT, UPDATE или DELETE. Они не заполняются автоматически из связанных таблиц.

Пример:

db.execSQL("CREATE VIRTUAL TABLE notes USING fts4(content)")
db.execSQL("INSERT INTO notes VALUES('Hello, world!')")

Нюансы:

  • Данные в виртуальных таблицах хранятся отдельно от обычных таблиц
  • Для обновления данных нужно явно выполнять соответствующие запросы
  • Можно использовать content= для синхронизации с обычной таблицей