2016-08-04 62 views
0

我正在開發一個使用SQLite數據庫和FTS4表的Android應用程序。SQLite檢查表是否是FTS4

在應用程序中有一個選項可以從外部存儲器導入數據庫。這個數據庫需要檢查以確認它具有所有正確的表和列。我已經有了這樣的代碼,但是我不知道如何檢查這些表是「正常的」還是FTS4。這將導致後面的問題與他們MATCH查詢。

我能想到的檢查表格是否爲FTS4的唯一方法是使用MATCH進行隨機查詢,如果出現錯誤則是因爲它們不是。

有沒有更好的方法來做到這一點,只需一個命令?

回答

1

僅當表中至少有一行時,在普通表上使用MATCH將導致錯誤消息。

FTS表具有與表名相同名稱的虛擬列。所以你可以試試像SELECT MyTable FROM MyTable這樣的查詢。

您可以檢查shadow tablesMyTable_content,MyTable_segdir等)是否存在。

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

+0

謝謝。我喜歡你的第一個建議。 –