简单总结
mysql自增列达到最大值后后续的值都是最大值,对于设置了普通索引的不会产生报错,但是一般我们都是针对主键设置自增,主键是要求不重复的,所以会报错
准备
create database mytest;
试验一
准备
CREATE TABLE `mytable1` (
`id` tinyint NOT NULL AUTO_INCREMENT,
`name` varchar(10) NOT NULL,
KEY `idx_id` (`id`)
) ENGINE=InnoDB
试验
创建一条,携带最大id
insert into mytable1(id,name) values(127,"a");
创建第二条,不携带id,由mysql自增
insert into mytable1(name) values("b");
都成功,执行
select * from mytable1
image.png
试验二
准备
CREATE TABLE `mytable2` (
`id` tinyint(4) NOT NULL AUTO_INCREMENT,
`name` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT
试验
创建一条,携带最大id
insert into mytable2(id,name) values(127,"a");
创建第二条,不携带id,由mysql自增
insert into mytable2(name) values("b");
第二条失败了,得到如下
image.png
注意
自增列必须添加索引
网友评论