如何使用Java / Android和SQLite DB重新排序主键行?

时间:2011-08-20 12:56:40

标签: android sqlite

我有第一个活动,我在其中创建数据库并插入一些数据。在我的第二个活动中,我从数据库中删除了数据,我想知道的是如何将我的行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主键必须是唯一的

0 个答案:

没有答案