一个(Mysql)表里有许多字段和许多记录,由于删除了一些记录,所以记录ID不连续了,现在想把所有记录的ID从1开始有小到大重新给值,本想新建一个相同结构的表依次按ID从旧库读记录再依次写到新库,这时ID是自增的所以就连续了,但字段太多,不想采用这个方法,不知道有没有更好的方法?3Q

解决方案 »

  1.   

    想到了个简单的方法还没试
    select id from table order by id asc
    按id升序从小到大依次取出记录id,然后也由1依次递增更新记录id,这样才不会造成重复ID,只能是升序,降序还没法实现
    不知道有没有更好的?
      

  2.   

    不推荐修改数据库表主键,将对相关业务造成破坏。select @row := @row + 1 a , b.* 
    from table b , (select @row := 0) c
    order by b.id desc;