当前位置: 代码网 > it编程>数据库>Mysql > MySQL 设置AUTO_INCREMENT 无效的问题解决

MySQL 设置AUTO_INCREMENT 无效的问题解决

2025年06月11日 Mysql 我要评论
一、修改 auto_increment 的值。执行 sql 如下,“tablename” 为数据表名称。注意:修改的 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 无效内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com