问题描述:
这是原有的数据库内容:
我们把第4条数据《活着》删除
DELETE FROM book WHERE id = 4;
然后再增加一条数据
INSERT INTO book VALUES(null, 2, '活着', 35.00);
会发现增加了一条id为6的数据
虽说在项目中不大会出现重新对数据库中的id进行重排序的需求……
解决:
SET @i=0;
UPDATE book SET id=(@i:=@i+1);
ALTER TABLE book auto_increment=1;
利用了MySQL的会话变量舍弃原有ID,对数据重新从1开始排序,然后再让主键自增从1开始,之后添加的数据就会按照顺序来了。
执行
SET @i=0;
UPDATE book SET id=(@i:=@i+1);
此时添加数据
INSERT INTO book VALUES(null, 3, '三体', 55.00);
执行
SET @i=0;
UPDATE book SET id=(@i:=@i+1);
ALTER TABLE book auto_increment=1;
此时再添加数据
达到要求