int 最大值
int 为4个字节存储
在 signed中,首位的 bit 用来表示符号, 最大值为
2^31−1=2147483647
在 unsigned 中,无需首位 bit 表示符号,最大值为
2^32−1=4294967295
以有符号为例,创建一张表t1,自增初始值设置为2^31−1=2147483647
CREATE TABLE `t1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
name varchar(20),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2147483647 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
insert into t1(name)
select 'c'
第一次插入没问题,查看一下
select * from t1;
insert into t1(name)
select 'c'
第二次插入报主键冲突,此时生成的id仍为2147483647,即Id达到最大值后就不再变化