假如我的id列(auto_increment)中有10条记录,1,2,3,4,5,6,7,8,9,10
我删除3,4,5之后
再插入数据,id值却是从11开始,
有没有什么办法让新插入的id值从删除的地方3开始增加呢?

解决方案 »

  1.   

    备份数据(除了自增字段)->TRUNCATE tt;->插入记录
      

  2.   

    首先,auto_increment不能,而且即使能够实现,也绝对得不偿失,即使你能够设置下一个ID=3,试问,在插入了3条记录以后(3,4,5),下一个ID应该=6吧,可是显然插入不了。这个时候有两种可能:
    1,插入失败,但ID自增,按照你的例子,你可能需要插入失败5次,第六次(ID=11)才能操作成功;
    2,数据库帮你负责找到下一个合适的位置。
    无论哪种情况,当你的数据库有几百万甚至更多的数据的时候,显然是个灾难!
      

  3.   

    TRUNCATE TABLE table1或者alter table table1 auto_increment=1
      

  4.   


    拜托,难道RDBMS等价于是excel(即使excel都可能存在vlookup之类的关联)
      

  5.   

    其他表呢?所以我说,数据库,不是excel。即使是excel都不能轻易变更ID,何况数据库。
      

  6.   

    如果是删除3,4,5,剩下 1,2,6,7,8,9,10则你无法设置MYSQL自动从3开始。除非你自己使用触发器。
      

  7.   

    1、楼主没有说明是否有其它表关联;
    2、就楼主的问题,重新编号是比较好的方法;
    3、当然也可以用SQL语句找出断号,再插入表中。
      

  8.   

    使用TRUNCATE TABLE重新设置AUTO_INCREMENT计数器
      

  9.   

    不是来找茬的。不过,我还是那句话,RDBMS不是Excel——连Excel都可能存在关联,何况数据库。
    “齐桓公”不清楚,星星就该问清楚或者陈明利害,而不是直接把核武器交给“齐桓公”。