在这个神秘问题出现之前,我的数据库在我的应用程序中运行良好。我想在一个表(listitems)中为两列(list_id 和 item_id)添加一个唯一索引。该表跟踪哪些项目与每个列表相关联,我不希望列表中有重复项。
所以我写了这个从 onUpgrade(...) 调用的数据库升级方法
private void upgradeTo3(SQLiteDatabase db) {
db.execSQL("CREATE UNIQUE INDEX IF NOT EXISTS '"+
Contract.DATABASE_NAME +"'.list_item_unique_index ON "+
Contract.ListItem.TABLENAME +
" ( "+ Contract.ListItem.LIST +", " + Contract.ListItem.ITEM + ")");
}
它给了我一个错误"unknown database 'my_database.db'"
我正在使用这个构造函数获取我的数据库助手,它使用与上面的 SQL 相同的字符串,但在这里它不会引发错误。我可以访问数据库。
public DatabaseHelper(Context context) {
super(context, Contract.DATABASE_NAME, null, Contract.DATABASE_VERSION);
}
此外,如果我在 Eclipse 中打开 DDMS,我可以看到应用程序文件中有一个名为“my_database.db”的文件。
有人知道为什么该 SQL 执行中似乎不存在数据库吗?