MySQL中怎样使删除表中的一条记录后,剩余记录还是排序且自动增长的?

例如记录如下1 111112 222223 33333删除第二条记录后变成了1 111112 33333

楼主:
你这种想法本身就是错误,用数据库最大的关键就是数据库能做的事,轻易不要去改变它,
你想要的那种结果,有必要吗?一点都没有.如果想要顺序排列的序号有好多办法..limit就可以.
你想想,如果你插入数据的时候是往两个表中插入的,A表中的ID是主键,用来做B表的外键.用来关系AB两个表,如果照你那样做.A表的ID变了,B表怎么办?这仅仅是两个表,如果表多了又怎么办?难道你还得一个个去改?否则的话 关系就全乱了..
所以,用数据库切记两点----->:
1:数据库能做的是事情,轻易不用自己的方法去做,除非特殊情况,一般很少
2:轻易不要改变数据库自己生成的数据...
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-11
那就得用程序控制了。比如说把你的这个逻辑写在SP里,需要删除的时候调用SP。比如说你要删除ID是2的记录,首先delete from 表 where id=2。然后update 表 set id=id-1 where id>2。两步操作能够实现你要的效果。
第2个回答  2012-01-11
mysql表会有一个属性记录自增长数下一个是什么。你添加了一条记录自增长值为1后,表的这个属性值就会自动变为2,而删除1这条记录后,表的这个属性还是2,所以下一次添加数据,就还是2。

楼主的需求,可以考虑用程序来做自增长计算,先获取表中最大的,再加1。
楼主其实没必要让第二条记录的自增长是1,设了自增长后,表它生成是多少就多少。没什么影响的。
第3个回答  2012-01-11
你这个想法数据库本身无法为你做到,除非你自己在插入数据的时候自己找有没有中间缺少的那个值,如果有,插进去,没有的话最大值加1
第4个回答  2012-01-11
DROP关键字是删除 ORDER BY asc增长排序
相似回答