通过ContentProvider往数据中出入了三条数据,id为自增,删除掉第二条数据后,id成1,3,怎样让3变成2?

解决方案 »

  1.   

    你为什么要让它变成2呢? id设置为自增之后, 删除其中一条ID,其他ID是不会改变的。
    按你的设想,如果有100000条记录 ,如果你删除第一条记录,那么后面的99999条的ID都要依次减一,这样的数据库效率能好么?你想要实现什么效果?一定有其他方法可以解决
      

  2.   

    如果通过contentprovider往数据库中插入了三条数据,然后用户删除了一条,之后他如果需要调用id= 2的数据的不就为空吗?
      

  3.   

    如果要换的话看看你存放数据库的文件data/data/xx.xx/databases里面是不是有个sequence表,它是用来生成表ID的,去修该那张表就可以。不过我觉得真的没必要这么做
      

  4.   


    你说的很对,但是你让它id=3 的减一,去替代ID=2的数据,这是不是掩耳盗铃了呢? 如果只有3条记录,这是你想调用id=3的数据,不是也会为空吗?所以: 你在查询数据库的时候不应该用id 来查询,你应该查询其他值来得到你想要的结果。id是由android 帮你管理的,所以你不能依赖于它,你应该依赖于你自己创建的字段。