0

我正在开发一个使用带有 FTS4 表的 SQLite 数据库的 Android 应用程序。

在应用程序中有一个从外部存储器导入数据库的选项。需要检查此数据库以确认它具有所有正确的表和列。我已经有了执行此操作的代码,但是我不知道如何检查表是“正常”还是 FTS4。这将导致稍后对MATCH它们进行查询时出现问题。

我能想到的检查表是否为 FTS4 的唯一方法是进行随机查询,MATCH如果出现错误,那是因为它们不是。

有没有更好的方法来做到这一点,就像只用一个命令?

4

1 回答 1

1

仅当表至少有一行时,对普通表使用 MATCH 会导致错误消息。

FTS 表有一个与表名同名的虚拟列。所以你可以尝试这样的查询SELECT MyTable FROM MyTable

您可以检查影子表MyTable_contentMyTable_segdir等)是否存在。

您可以检查系统表中的 CREATE TABLE 语句:SELECT sql FROM sqlite_master WHERE type = 'table' AND name = 'MyTable';

于 2016-08-04T14:43:54.693 回答