delete和truncate的区别

delete和truncate的区别


delete:一条一条的删除,不清空auto_increment记录数
truncate:直接将表删除,重新建表,auto_increment将设置为零,从新开始。(如果原表是自动增长,新表也可自动增长)

如创建一个表设置自动增长
create table stu(
id int primary key auto_increment,
name varchar(20) ,
age int,
score double
);

insert into stu(null,‘张三’,18,80),(null,‘李四’,26,70),(null,‘王五’,28,60);
对于这个表,插入数据后,id自动递增
插入三条数据,id自动增加
删除3之后,再在表中添加数据,id设为null,自动增加就会从最高的3递增得到id为4,如下图
递增为4
而如果在想用3这个id只能在插入数据语句中将id赋值为3,不能再设为null,否则依然会自动增加。
所以如果用delete(delete from stu;)清空表,再在表中加数据时,数据不会从id为1开始,而是从删除之前的最高id继续递增。
继续递增

而用truncate(truncate from stu;)清空表,再在表中加数据,数据就会从id为1开始。
id从1开始
自学笔记,来自黑马程序员

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值