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

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为开始增长的位置);

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog