我有第一个活动,我在其中创建数据库并插入一些数据。在我的第二个活动中,我从数据库中删除了数据,我想知道的是如何将我的行ID重新排序为连续顺序。
例如,删除某些行后我的数据库如下所示: -------- ------------- 1 -------------问题1 ---------正确答案为0 -------- ------------- 3问题2 ------------- ANSWER2 --------- 3 -------- ------------- 5 -------------问题3 --------- ANSWER3 5
退出我的活动后,我希望看起来像这样: -------- ------------- 1 -------------问题1 ---------正确答案为0 -------- ------------- 2问题2 ------------- ANSWER2 --------- 3 -------- ------------- 3 -------------问题3 --------- ANSWER3 5
使用此
尝试onDestroy()函数@覆盖
protected void onDestroy(){
super.onDestroy(); if (mDbHelper != null) { for(int i=0; i<mDbHelper.countRows(); i++){ try{ mDbHelper.updateDate(Integer.toString(i++), ggQuestions[i], ggAnswers[i], pozz++); }catch(Exception ex){} } mDbHelper.close(); }
}
其中mDbHelper是我的数据库,我的主键是String(这就是使用整数到字符串的原因),我的updateDate sql函数如下所示:
mDb.execSQL("UPDATE flagtable SET _id="+_superID+", answer='"+answ+"', position="+ Integer.toString(pozz)+" WHERE question='"+quest+"'");
我收到此错误:执行UPDATE时,失败19主键必须是唯一的