问题:当我们对mysql数据中主键自增的id执行delete后下次再插入时id不会与上一个连续
解决利用触发器
CREATE TABLE `tb` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(50) NOT NULL DEFAULT 'default' COMMENT '表名',
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COMMENT='测试表';
insert into tb(name) values('a');
select * from tb
当表中id不连续中间有断的时可以执行下面的动态sql语句使它连续 id重新排序
SET @i=0;
UPDATE `tb` SET `id`=(@i:=@i+1);
触发器设置id自动增长
create trigger tbid
before insert on tb for each row
begin
set new.id=(select max(id)+1 from tb);
end;