0

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

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

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

4

2 回答 2

3

你为什么要把它从/assets? 要计算表,您应该使用以下查询:

SELECT count(*) FROM sqlite_master 
WHERE type = 'table' AND name != 'android_metadata' AND name != 'sqlite_sequence';

编辑**

看来我的实现是错误的。将查询与其他答案一起使用。

于 2013-08-05T18:28:38.510 回答
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();
于 2013-11-04T07:25:55.330 回答