MySQL 设置AUTO_INCREMENT 无效的问题解决

 更新时间:2025年06月11日 11:23:55   作者:辣机堆找辣机  
本文主要介绍了MySQL 设置AUTO_INCREMENT 无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、修改 AUTO_INCREMENT 的值。

执行 sql 如下,“tablename” 为数据表名称。

注意:修改的 auto_increment 的值得大于现有主键的最大值。否则,语句不报错,但不会生效(这里需要特别注意,我之前一直没成功是因为表里有一个很大的值20284665,需要更改到数据表最大数量值)。
可以尝试-目录是重置数据的id(执行前备份CREATE TABLE tablename_back AS SELECT * FROM tablename;)
SET @row_number = 0;
UPDATE tablename SET id = (@row_number:=@row_number + 1);
这种方法线上环境慎用,开放环境需进行多次验证

ALTER TABLE tablename AUTO_INCREMENT=1001;

二、修改后查询一下 AUTO_INCREMENT 的值,执行下面 sql 可查询(结果发现还是修改之前的值)

SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name="tablename";

三、分析数据表。重新分析一下数据表即可,执行如下 sql。

analyze table tablename;

分析数据表之后,在执行第二步中的查询即可看到 auto_increment 的值修改成功。

快速设置Mysql的auto_increment参数

在使用mysql时,在导入数据后经常需要修改auto_increment参数,如果数据比较多时,执行效果非常缓慢。在3500万数据表上修改auto_increment参数,大概需要10分17秒(本地mac机器上测试,在服务器稍微好点,但是也很慢),通过摸索,发现另外一个方法可以巧妙的设置auto_increment参数。

以表A为例,说明如何设置auto_increment 的值为3500万。

1、利用insert语句修改auto_increment值,再利用回滚去掉插入数据,但是修改后的auto_increment值不会被回滚

begin work;
insert into A(id,field) values (34999999,'test');
rollback;

2、查看修改后的值

show tables  

到此这篇关于MySQL 设置AUTO_INCREMENT 无效的问题解决的文章就介绍到这了,更多相关MySQL AUTO_INCREMENT 无效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL千万数据量深分页优化流程(拒绝线上故障)

    MySQL千万数据量深分页优化流程(拒绝线上故障)

    这篇文章主要为大家介绍了MySQL千万数据量深分页优化拒绝线上故障,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • MySQL中约束的实现示例

    MySQL中约束的实现示例

    本文主要介绍了MySQL中约束的实现示例,包括非空约束、唯一约束、主键约束、默认约束、检查约束和外键约束,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Mysql基础教程之增删改查语句

    Mysql基础教程之增删改查语句

    这篇文章主要给大家介绍了关于Mysql基础教程之增删改查语句的相关资料,以下是MySQL最基本的增删改查语句,很多IT工作者都必须要会的命令,也是IT行业面试最常考的知识点,需要的朋友可以参考下
    2023-10-10
  • MySQL GROUP BY分组取字段最大值的方法示例

    MySQL GROUP BY分组取字段最大值的方法示例

    本文介绍了如何使用MySQL的GROUPBY语句结合MAX函数来实现分组取字段最大值的操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • Mysql通过explain分析定位数据库性能问题

    Mysql通过explain分析定位数据库性能问题

    这篇文章主要介绍了Mysql通过explain分析定位数据库性能问题,明确SQL在Mysql中实际的执行过程是怎样的,如果查询字段没有索引则增加索引,如果有索引就要分析为什么没有用到索引,本文详细讲解,需要的朋友可以参考下
    2023-01-01
  • Linux下安装mysql的方式(yum和源码编译两种方式)

    Linux下安装mysql的方式(yum和源码编译两种方式)

    这里介绍Linux下两种安装mysql的方式:yum安装和源码编译安装。需要的朋友可以参考下
    2018-02-02
  • MySQL复制的概述、安装、故障、技巧、工具(火丁分享)

    MySQL复制的概述、安装、故障、技巧、工具(火丁分享)

    首先主服务器把数据变化记录到主日志,然后从服务器通过I/O线程读取主服务器上的主日志,并且把它写入到从服务器的中继日志中,接着SQL线程读取中继日志,并且在从服务器上重放,从而实现MySQL复制。
    2011-04-04
  • Nacos配置MySQL8的方法

    Nacos配置MySQL8的方法

    这篇文章主要介绍了Nacos配置MySQL8的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • mysql表优化、分析、检查和修复的方法详解

    mysql表优化、分析、检查和修复的方法详解

    这篇文章主要介绍了mysql表优化、分析、检查和修复的方法,结合实例形式较为详细的分析了MySQL表进行优化,分析与修复等操作的各种常见命令与使用技巧,需要的朋友可以参考下
    2016-04-04
  • MySQL视图中用变量实现自动加入序号功能

    MySQL视图中用变量实现自动加入序号功能

    在 MySQL 中,视图不支持直接使用变量来生成序号,因为视图是基于静态 SQL 查询定义的,而变量是在运行时动态计算的,不过,你可以通过一些技巧来实现类似的效果,以下是一个常见的方法,使用子查询来初始化变量,然后在视图中使用这些变量,需要的朋友可以参考下
    2024-10-10

最新评论