我将现有的SQLite数据库从资产复制到数据库文件夹。当我尝试从其中一个表(光泽度)中检索数据时,它会出错:
android.database.sqlite.SQLiteException:没有这样的表:gloss:,while 编译:SELECT DISTINCT id,fk,lang,value FROM gloss WHERE value 比如'%a%'
我想确保将所有表复制到'data / data / package / databases /'中的新数据库 如何在SQLite db中获取表的数量?
答案 0 :(得分:3)
为什么要从/assets
移动它?要计算表,您应该使用此查询:
SELECT count(*) FROM sqlite_master
WHERE type = 'table' AND name != 'android_metadata' AND name != 'sqlite_sequence';
编辑**
似乎我的实施是错误的。将查询与其他答案一起使用。
答案 1 :(得分:3)
感谢评论中的@CL:
String SQL_GET_ALL_TABLES = "SELECT count(*) FROM sqlite_master
WHERE type = 'table' AND
name != 'android_metadata' AND
name != 'sqlite_sequence';"
return db.compileStatement(SQL_GET_ALL_TABLES).simpleQueryForLong();