如何获取虚拟表的名称?

时间:2017-10-07 05:51:44

标签: sqlite full-text-search fts5

示例模式:

CREATE VIRTUAL TABLE posts USING FTS5(title, body);

选择表名:

SELECT name FROM sqlite_master WHERE type='table';

结果:

posts
posts_data
posts_idx
posts_content
posts_docsize
posts_config

如何仅为虚拟表提取结果,而不是*_data*_idx*_content*_docsize*_config

1 个答案:

答案 0 :(得分:2)

FTS模块使用shadow tables来存储实际数据及其索引。

但那些是'真正的'表,所以你可以简单地使用过滤器来获取虚拟表的sqlite_master个条目:

SELECT name
FROM sqlite_master
WHERE type = 'table'
  AND sql LIKE 'CREATE VIRTUAL TABLE%';