说明:本文中所有叙述均基于MySQL 5.6版本 ,Innodb引擎 ,数据库隔离级别为可重复读
如下是各数据类型的范围(来自mysql官方文档说明)

以INT为例,建立测试表,AUTO_INCREMENT设置为4294967295 则下一个插入值是4294967295 达到最大
CREATE TABLE auto_t(
id INT UNSIGNED AUTO_INCREMENT,
nums INT,
KEY ind_auto_t (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4294967295;
插入记录,观察自增列数据情况
// 成功插入
INSERT INTO auto_t (nums) VALUES (1);
// AUTO_INCREMENT=4294967295保持原样 并没有增加
SHOW CREATE TABLE auto_t;
// 成功插入
INSERT INTO auto_t (nums) VALUES (2);
// 成功插入
INSERT INTO auto_t (nums) VALUES (3);
SELECT * FROM auto_t
最终表数据如图:

结论:自增ID用完后 一直都是最大值 如果标识了主键 则主键冲突
本文通过实验展示了在MySQL5.6版本下,使用InnoDB引擎时,INT类型自增ID达到最大值4294967295后的行为。揭示了自增ID用完后将一直保持最大值,若为主键则会引发主键冲突的现象。
1311

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



