自增 ID(如 MySQL 的 AUTO_INCREMENT)突然变得很大,通常不是“跳号”一点点,而是一下子跳到非常大的值。常见原因有下面几类,按出现频率从高到低说明:
如果你或程序执行过类似:
INSERT INTO t(id, name) VALUES (99999999, 'x');
那么下一次自增会从 99999999 + 1 开始。
✅ 验证:
SHOW CREATE TABLE t;
SELECT MAX(id) FROM t;
DELETE FROM t,自增仍保留原值✅ 例子:
原数据:1,2,3,...,100000
删除全部
下次插入 → 100001
INSERT ... SELECT 或数据迁移从别的表导入数据时,如果源表 ID 本身就很大,目标表自增也会被“带飞”。
MySQL 5.7 及之前:
MySQL 8.0:
⚠️ 这常被误以为“突然变大”
INSERT ... ;
ROLLBACK;
高并发下可能看到:
1001, 1002, 5001, 5002 ...
例如:
ALTER TABLE t AUTO_INCREMENT = 1000000;
有些系统早期用自增,后期改成:
-- 当前自增起点
SHOW TABLE STATUS LIKE 't';
-- 实际最大 ID
SELECT MAX(id) FROM t;
-- 最近是否大插入
SELECT * FROM t ORDER BY id DESC LIMIT 10;
你可以补充:
我可以直接帮你判断是哪一种情况,并告诉你能不能“安全地降回去”。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。