火火锅 2018-03-06 09:35 采纳率: 66.7%
浏览 1500
已结题

mysql 如何在有数据的情况下使主键id从1增长

有个日志表,数据增长较快,很容易满,
于是我写了事件每年执行一次存储过程。存储过程就是把去年的数据移出来放到一个新表。
但是剩下的数据id可能已经自增到7,8位数了,
希望可以把剩下的数据重新从1开始增长,
请问各路大神,有没有什么方法,
有查到SOL server中有DBCC CHECKIDENT('TableName', RESEED, 0)这样的用法,不知道mysql中有没有

比如:
图片说明
图片中可以看出我的表里只剩下了4条数据,如果这个时候插入数据,只会在这个id的基础上增加,有没有方法可以将这个4条数据从1开始;

有一种比较笨的方法是:新建一个临时表,把数据复制过去,再将这个表清空,再把临时表数据插入进来。
但是如果这是线上的数据表,随时都会有数据进来,上面那个方法的操作会不会有风险

  • 写回答

5条回答 默认 最新

  • Aurora215 2018-03-06 09:47
    关注

    有2种方式

    第一种 清空数据表,使表中的数据从1开始增长

    truncate table TableName

    第二种 从特定的某一个值开始自动增长 如下

    alter table jx_pcmx AUTO_INCREMENT 0(0为开始增长的位置);

    评论

报告相同问题?