Я считаю, что это называется внешним контентом при создании fts.
Нет виртуальной таблицы, созданной с использованием CREATE VIRTUAL TABLE ...... USING module_name (module_parameters)
Виртуальные таблицы являются таблицамикоторый может вызывать модуль, поэтому ИСПОЛЬЗОВАНИЕ module_name (module_parameters) является обязательным.
Для FTS (полнотекстового поиска) вам придется прочитать документацию , но это может быть что-то вроде
CREATE VIRTUAL TABLE IF NOT EXISTS bible_fts USING FTS3(book, chapter INTEGER, verse INTEGER, content TEXT)
Скорее всего, вам не нужна / не нужна виртуальная таблица.
CREATE TABLE vtable AS SELECT rowid from mytable WHERE name < 'm' ORDER BY age;
создаст обычную таблицу, если она еще не существуетэто будет сохраняться.И если вы хотите использовать его, то он, вероятно, будет полезен только путем объединения его с mytable.По сути, это позволило бы снимок, но по цене не менее 4 тыс. Для каждого снимка.
Я бы предложил одну таблицу для всех снимков, которая имеет два столбца: идентификатор снимка и идентификатор строки снимка.Это, вероятно, будет занимать гораздо меньше места.
Базовый пример
Рассмотрим: -
CREATE TABLE IF NOT EXISTS mytable (
id INTEGER PRIMARY KEY, /* NOTE not using an alias of the rowid may present issues as the id's can change */
name TEXT,
age INTEGER
);
CREATE TABLE IF NOT EXISTS snapshot (id TEXT DEFAULT CURRENT_TIMESTAMP, mytable_map);
INSERT INTO mytable (name,age) VALUES('Mary',21),('George',22);
INSERT INTO snapshot (mytable_map) SELECT id FROM mytable;
SELECT snapshot.id,name,age FROM snapshot JOIN mytable ON mytable.id = snapshot.mytable_map;
И вышеописанное выполняется 3 раза с разумным интервалом (в секундах, так чточтобы отличить идентификатор снимка (метка времени)).
Тогда вы получите 3 снимка (каждый с количеством строк, но одинаковым значением в столбце идентификатора для каждого снимка), первый с 2 строками,2-е с 4 и последним с 6 (так как каждый цикл добавляет 2 строки в mytable): -
![enter image description here](https://i.stack.imgur.com/mNjUX.png)