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

被折叠的 条评论
为什么被折叠?



