说明:本文中所有叙述均基于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用完后 一直都是最大值 如果标识了主键 则主键冲突