SQL高级操作之三——删除数据(删除数据后如何修改主键自增长值使得新增数据后自增长id仍然连续)

删除数据

 

1、 删除数据的时候尽量不要全部删除,应该使用where进行 判定;

2、 删除数据的时候可以使用limit来限制要删除的具体数量

Delete删除数据的时候无法重置auto_increment(可以看看)

(1)创建带自增长主键的表

SQL高级操作之三——删除数据(删除数据后如何修改主键自增长值使得新增数据后自增长id仍然连续)

(2)插入三条数据

SQL高级操作之三——删除数据(删除数据后如何修改主键自增长值使得新增数据后自增长id仍然连续)

(3)把id为2,3的两行数据删除然后再新增一条,然后再新增一条数据,我们知道再次新增时,新增行id会变为4

SQL高级操作之三——删除数据(删除数据后如何修改主键自增长值使得新增数据后自增长id仍然连续)

为什么?因为id自增长此时为4,通过查表结构可以看到auto_increment为4

SQL高级操作之三——删除数据(删除数据后如何修改主键自增长值使得新增数据后自增长id仍然连续)

那我要删除数据后自增长值变为2要怎样做,我前面列属性那篇有讲

可以像前面修改字符集那样修改自增长的值,但是自增长的值必须大于当前自增长列最大值(此处为1),否则修改无效

语法:Alter table 表名 auto_increment = 值;

SQL高级操作之三——删除数据(删除数据后如何修改主键自增长值使得新增数据后自增长id仍然连续)

若想把表内数据全部删除,然后自增长恢复为1,

使用Truncate 表名  就等价于 先drop表  然后再 以同样表结构create