修改mysql表自增主键初始值

当MySQL自增主键过长,可能导致前端传递参数错误。本文介绍了如何查看和修改自增主键值,特别是在不能删除数据的线上、测试环境中,提出通过备份、清空、修改、回填数据的步骤来调整自增主键初始值。

主键过长会导致的问题

当mysql的自增主键过长会有什么问题,会导致前端传递的时候出现截取长度并四舍五入。导致传递参数发现数据库不存在。从而导致接口报错

查看当前表的自增主键值

SELECT
	auto_increment 
FROM
	information_schema.`TABLES` 
WHERE
	# 表名
	table_name = 'avd'
	# 数据库名 
	AND TABLE_SCHEMA = 'cyz';

修改当前值

注意:当数据库主键过大,或修改主键101比下一个自增主键999小,单独使用此sql:ALTER TABLE avd AUTO_INCREMENT = 101,不能修改成功。线清空数据,再修改。

# 清空表数据
TRUNCATE TABLE `avd`;
# 修改主键自增初始值 单独使用此sql不能成功
ALTER TABLE avd AUTO_INCREMENT = 101

例如线上、测试环境的数据不能删除,但又需要修改自增主键初始值该如何解决

1、先备份表,(建议:生产数据库应该加读锁,防止产生新的数据。根据公司具体业务来修改)

2、 将原表数据清空。然后执行上面的sql,修改初始值

3、将备份表的数据重新写入原表中(记得执行前俩步)

4、删除备份表数据 ok

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心有城府,腹有良谋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值