就比喻这样:
id       name
 1       张三
 2       李四
 3       王五
 4       陈六就是如果我删去id为3的时候,就应该变成:
id       name
 1       张三
 2       李四
 3       陈六有木有简便的方法实现?数据

解决方案 »

  1.   

    备份数据->TRUNCATE 表->导入数据
      

  2.   

    我里面的那个ID本来就是自增的字段的
    其实我这样做,是为了防止数据溢出的
    数据库里面的数据不会超过30条的,但是会有这种的情况出现:
    如果数据没有修改过的话,总数是20条,
    那么ID,最大就是id = 20;
    但是当用户删去里面的一条数据的话,
    那么总数就是19条,但是ID还是id = 20了,
    当用户添加数据的时候,总数再次是20,但id = 21了如此循环的话,那么id会无限增大,而总数有可能还是20.。。
    所以我怕到时候,数据库
    里面的数据会出问题
    有其它方法解救吗??
      

  3.   

    我里面的那个ID本来就是自增的字段的
    其实我这样做,是为了防止数据溢出的
    数据库里面的数据不会超过30条的,但是会有这种的情况出现:
    如果数据没有修改过的话,总数是20条,
    那么ID,最大就是id = 20;
    但是当用户删去里面的一条数据的话,
    那么总数就是19条,但是ID还是id = 20了,
    当用户添加数据的时候,总数再次是20,但id = 21了如此循环的话,那么id会无限增大,而总数有可能还是20.。。
    所以我怕到时候,数据库
    里面的数据会出问题
    有其它方法解救吗??
    先预估下你啥时候能用完 bigint unsigned 吧
      

  4.   

    bigint作为id可以表示-9223372036854775808到+9223372036854775807的整数 你觉得你有必要担心么~~~
      

  5.   

    你可以把ID改为自增长的,取消id为主键。
    那么你每次删除的一条后,再次增加ID就会顺序增加的!
    当然这样子不会变成你说的  删掉了第三条,第四条的id变成第三条的id
    但是这样子会让你你里面有二十条数据的时候,id最大的就是20
      

  6.   

    你这句话提醒了我,
    我可以这样做,用
    String sql = "select * from  table_name";
    Cursor cursor = sqliteDatabase.rawQuery(sql, null);
    先从数据库获得到这些所有的数据,然后一个循环赋值,用一个i++来判断ID,是否连续,
    如果不连续的话,就修改id,让它等于i,id = i;谢谢版主。
    其他人的思路很不错,让我很受益,但是我这个项目用版主这个方法,是最好的,谢谢各位
      

  7.   

    我觉得 只有有bug的 话,都还是担担心吧,毕竟一个项目,毕竟是为客户而做的