我一直在努力通过使用视图使我的sqlite DB更具动态性 . 除了全文搜索表之外,这在所有情况下都有所帮助 . 根据SQLite FTS4文档(https://www.sqlite.org/fts3.html#section_6_2_2),有一种方法可以在创建全文搜索虚拟表时将表作为内容表引用 . 不幸的是,用户仍然负责填充和维护虚拟表,这没有多大意义,但它就是它的本质 .

我最初填充fts4表并让它工作的方式是这样的:

CREATE VIRTUAL TABLE term_search使用fts4(id,name,origin,content,refs,created); INSERT INTO term_search SELECT id,name,origin,text,refs,from FROM full_text_dict;

这最初运作良好但非动态 .

我试图像这样创建'external-content'ffts4表:

CREATE VIRTUAL TABLE term_search使用fts4(content =“full_text_dict”,名称,来源,内容,引用,创建); INSERT INTO term_search(docid,name,origin,content,refs,created)SELECT id,name,origin,text,refs,from FROM full_text_dict;

SQLite允许我这样做,但是当我尝试查询表时,我得到:

SELECT * FROM term_search WHERE content MATCH'data';错误:SQL逻辑错误或缺少数据库

当我尝试运行integrity-check命令时,我收到同样的错误:

INSERT INTO term_search(term_search)VALUES('integrity-check');

我觉得我错过了一些东西,但无法确定文档中的内容 . 有任何想法吗?提前致谢 .

编辑:我应该提到我正在使用的内容表是一个视图 . 据说它应该仍然可以工作,但我想知道它是否可能是一个错误 .