我發現解決方案來獲取SQLite中的所有表。 How to list the tables in an SQLite database file that was opened with ATTACH? 但是,當我改變:SQLite選擇所有表DESC
SELECT name FROM sqlite_master WHERE type='table';
到:
SELECT name FROM sqlite_master WHERE type='table' ORDER BY name DESC;
輸出是完全不可思議。 第一個查詢給我: tbl201306 - >目前爲止只有1個表,2013年6月。 第二個查詢給我: android_metadata - >名稱沒有改變,但是它返回這個名字。
我希望這些表格按降序排列,因爲將來,最新的表格會位於最前面。
我的完整代碼:
public ArrayList<String> getDBTables() {
ArrayList<String> toReturn = new ArrayList<String>();
try {
Cursor c = db.rawQuery("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name DESC", null);
c.moveToFirst();
while (c.moveToNext()) {
toReturn.add(c.getString(c.getColumnIndex("name")));
}
c.close();
}
catch(SQLiteException e) {
e.printStackTrace();
}
return toReturn;
}
哇,這並沒有太大的意義。這看起來像有效的代碼。你的SQL行在我的數據庫上運行良好。 – HalR
當我有這種奇怪的東西發生時,我嘗試「現實檢查」。如果你改回第一行,它還能工作嗎?你的數據庫可能會搞砸了。其他「絕望」措施包括刪除當前字符串,重新輸入字符串,並對項目進行完全乾淨的重建,包括首先從設備中刪除它。 – HalR
你有什麼問題?該查詢返回兩條記錄。名字按降序排列。你能指望什麼?數據庫中有更多表嗎? – cha