【问题标题】:SQLite Check if Table is FTS4SQLite 检查表是否为 FTS4
【发布时间】:2016-12-10 17:24:39
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: android sqlite fts4


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢。我喜欢你的第一个建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 2023-03-15
    • 2021-10-06
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多