删去数据之后,怎么自动使ID继续保持连续性的?

mimixi666 2013-10-16 03:15:22
就比喻这样:
id name
1 张三
2 李四
3 王五
4 陈六

就是如果我删去id为3的时候,就应该变成:
id name
1 张三
2 李四
3 陈六

有木有简便的方法实现?
...全文
309 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
mimixi666 2013-10-17
  • 打赏
  • 举报
回复
引用 7 楼 liuxinran819 的回复:
bigint作为id可以表示-9223372036854775808到+9223372036854775807的整数 你觉得你有必要担心么~~~
我觉得 只有有bug的 话,都还是担担心吧,毕竟一个项目,毕竟是为客户而做的。。。
mimixi666 2013-10-17
  • 打赏
  • 举报
回复
引用 4 楼 rucypli 的回复:
没什么方法 本身id连续没有任何意义
你这句话提醒了我, 我可以这样做,用 String sql = "select * from table_name"; Cursor cursor = sqliteDatabase.rawQuery(sql, null); 先从数据库获得到这些所有的数据,然后一个循环赋值,用一个i++来判断ID,是否连续, 如果不连续的话,就修改id,让它等于i,id = i; 谢谢版主。。。。 其他人的思路很不错,让我很受益,但是我这个项目用版主这个方法,是最好的,谢谢各位。。。
kobe8free 2013-10-16
  • 打赏
  • 举报
回复
你可以把ID改为自增长的,取消id为主键。 那么你每次删除的一条后,再次增加ID就会顺序增加的! 当然这样子不会变成你说的 删掉了第三条,第四条的id变成第三条的id 但是这样子会让你你里面有二十条数据的时候,id最大的就是20
ACMAIN_CHM 2013-10-16
  • 打赏
  • 举报
回复
不要管ID的值,仍然让它保持自动增长。然后在输出的时候通过程序得到一个序列号即可。
Rotel-刘志东 2013-10-16
  • 打赏
  • 举报
回复
注意字符集要一致。
Rotel-刘志东 2013-10-16
  • 打赏
  • 举报
回复
方法还是很多的。首先按照原表字段建立一张空表,然后再将把删除ID数据表插入 这张表中就可以了。
liuxinran819 2013-10-16
  • 打赏
  • 举报
回复
bigint作为id可以表示-9223372036854775808到+9223372036854775807的整数 你觉得你有必要担心么~~~
水族杰纶 2013-10-16
  • 打赏
  • 举报
回复
引用 5 楼 mimixi666 的回复:
[quote=引用 3 楼 wwwwb 的回复:] 呵呵,没有,也可以插入有自增字段的表中
我里面的那个ID本来就是自增的字段的。。。 其实我这样做,是为了防止数据溢出的。。。 数据库里面的数据不会超过30条的, 但是会有这种的情况出现: 如果数据没有修改过的话,总数是20条, 那么ID,最大就是id = 20; 但是当用户删去里面的一条数据的话, 那么总数就是19条,但是ID还是id = 20了, 当用户添加数据的时候,总数再次是20,但id = 21了。。。 如此循环的话,那么id会无限增大,而总数有可能还是20.。。 所以我怕到时候,数据库 里面的数据会出问题。。。 有其它方法解救吗??[/quote] 先预估下你啥时候能用完 bigint unsigned 吧
mimixi666 2013-10-16
  • 打赏
  • 举报
回复
引用 3 楼 wwwwb 的回复:
呵呵,没有,也可以插入有自增字段的表中
我里面的那个ID本来就是自增的字段的。。。 其实我这样做,是为了防止数据溢出的。。。 数据库里面的数据不会超过30条的, 但是会有这种的情况出现: 如果数据没有修改过的话,总数是20条, 那么ID,最大就是id = 20; 但是当用户删去里面的一条数据的话, 那么总数就是19条,但是ID还是id = 20了, 当用户添加数据的时候,总数再次是20,但id = 21了。。。 如此循环的话,那么id会无限增大,而总数有可能还是20.。。 所以我怕到时候,数据库 里面的数据会出问题。。。 有其它方法解救吗??
rucypli 2013-10-16
  • 打赏
  • 举报
回复
没什么方法 本身id连续没有任何意义
wwwwb 2013-10-16
  • 打赏
  • 举报
回复
呵呵,没有,也可以插入有自增字段的表中
mimixi666 2013-10-16
  • 打赏
  • 举报
回复
引用 1 楼 wwwwb 的回复:
备份数据->TRUNCATE 表->导入数据
哇?那么麻烦,不能用命令实现的吗?
wwwwb 2013-10-16
  • 打赏
  • 举报
回复
备份数据->TRUNCATE 表->导入数据

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧