SQLite中的表计数

时间:2013-08-05 18:15:31

标签: android sqlite count

我将现有的SQLite数据库从资产复制到数据库文件夹。当我尝试从其中一个表(光泽度)中检索数据时,它会出错:

  

android.database.sqlite.SQLiteException:没有这样的表:gloss:,while   编译:SELECT DISTINCT id,fk,lang,value FROM gloss WHERE value   比如'%a%'

我想确保将所有表复制到'data / data / package / databases /'中的新数据库 如何在SQLite db中获取表的数量?

2 个答案:

答案 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();