老问题了.不好意思,我没找到答案.比如表1
ID 字段
1 aaa
2 bbb删除ID=2的记录后再添加数据ccc会跳过ID=2ID 字段
1 aaa
3 ccc有没有办法在不影响数据的情况下,让id重新从1开始排序?谢谢!ID 字段
1 aaa
2 ccc
ID 字段
1 aaa
2 bbb删除ID=2的记录后再添加数据ccc会跳过ID=2ID 字段
1 aaa
3 ccc有没有办法在不影响数据的情况下,让id重新从1开始排序?谢谢!ID 字段
1 aaa
2 ccc
好像麻烦了点
你这是删除id=2,后面已经没有数据了,所以不用考虑id=3....n的情况。
如果id字段的数据很多呢,删除id=2 那么id=3...n的 是不是都要依次减一,这样数据库的开销会很大。如果你一定要这么做,得变通一下。
要增加一个表deltable,用来记录被删除的ID号。 往主表插入数据时候首先从deltable表中取出一个id,然后根据这个id往主表插数据,成功后删除deltable表中的这个id。如果deltable表为空,则插入主表的表尾。
这样做存在的弊端是 当有大量并发写主表就会出问题。 当然可以给写主表任务建立队列,并且锁表,能解决并发问题。我能想到的就这么多。
本来已经递增到100了.现在我们把记录全部都删掉.如果直接舔记录的话,id会是101.
但是如果这是我们先执行ALTER TABLE `lycompanynews` AUTO_INCREMENT = 0那么,新舔一条记录id则会变成1.
create temporary table tmp select 字段 from `表1`;
TRUNCATE TABLE `表1`;
insert into `表1` select 字段 from tmp;注意:字段 为该表除去自增字段以外的全部字段的集合
还是把前面的999条依次前移, 然后插入 id=1000 ???这样做的原因?id是否有实际用处? 比如显示? 比如作为票据号码? .... 等?
你好我问一个问题:
我在设计留言板的时候,如果有20条记录,我删除了其中的第5条,那么,ID字段就少了5.这样的话,我写程序查询数据库的时候,需要把留言都显示出来,问题出来了,我还想用ID字段作为显示出来的留言的序列号呢,这样的话岂不是少了第5条?如果在删除的时候可以把数据库里的ID字段再重新排序一下就解决了,那应该怎么排序呢?
另外,如果有别的办法的话,请告诉我该怎么设计这个留言板的显示程序呢?说说大体思路就行.