Как получить имена виртуальных таблиц?
Пример схемы:
CREATE VIRTUAL TABLE posts USING FTS5(title, body);
Выберите имена таблиц:
SELECT name FROM sqlite_master WHERE type='table';
Результат:
сообщений posts_data posts_idx posts_content posts_docsize posts_config
Как получить результат только для виртуальных таблиц, без *_data
, *_idx
, *_content
, *_docsize
а также *_config
?
1 ответ
Решение
Модули FTS используют теневые таблицы для хранения фактических данных и их индексов.
Но это "настоящие" таблицы, так что вы можете просто использовать фильтр, чтобы получить только sqlite_master
записи для виртуальных таблиц:
SELECT name
FROM sqlite_master
WHERE type = 'table'
AND sql LIKE 'CREATE VIRTUAL TABLE%';