我发现解决方案来获取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