SQLite检查表是否为FTS4

时间:2016-08-04 14:14:01

标签: android sqlite fts4

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

在应用程序中,可以选择从外部存储器导入数据库。需要检查此数据库以确认它具有所有正确的表和列。我已经有了这样做的代码但是我不知道如何检查表是“正常”还是FTS4。这将导致稍后查询MATCH的问题。

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

有没有更好的方法来执行此操作,只需要一个命令?

1 个答案:

答案 0 :(得分:1)

仅当表中至少有一行时,在普通表上使用MATCH才会产生错误消息。

FTS表有一个与表名同名的虚拟列。因此,您可以尝试查询SELECT MyTable FROM MyTable

您可以检查shadow tablesMyTable_contentMyTable_segdir等)是否存在。

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