寮步网站仿做,重庆旅游,深圳建设局官网站,保驾护航装修网今天在APP中增加一个添加项目的功能#xff0c;项目的主键为整数#xff0c;要让它自增长。既然要自增长#xff0c;那么在代码里面就不用给id字段赋值。但是调试的时候发现不行#xff0c;提示主键重复#xff0c;观察了输出#xff0c;不赋值的话#xff0c;id默认为0…今天在APP中增加一个添加项目的功能项目的主键为整数要让它自增长。既然要自增长那么在代码里面就不用给id字段赋值。但是调试的时候发现不行提示主键重复观察了输出不赋值的话id默认为0于是每次都为0就重复了Source source new Source();source.setName(dict.getName());//id没有赋值SourceManager.get(this).insert(source);ContentValues cv new ContentValues();System.out.println(id: source.getId());//输出id每次都是0cv.put(COLUMN_ID, source.getId());cv.put(COLUMN_NAME, source.getName());id没有赋值为什么是0呢那就是Java的默认int为0了所以在对象层面就算不赋值id也默认是0。因此要从数据库操作层面来解决//cv.put(COLUMN_ID, source.getId());v.put(COLUMN_NAME, source.getName());ContentValue赋值时取消对id字段的赋值即可。问题解决可以自增长了。总结Android中让sqlite主键自增长的条件如下1. 数据库中设置字段为INTEGERPrimaryAutoincrement。2. Java代码中ContentValue赋值时忽略主键字段。好了以上就是这篇文章的全部内容了希望本文的内容对大家的学习或者工作能带来一定的帮助如果有疑问大家可以留言交流谢谢大家对脚本之家的支持。