2019-01-31
阅读量:
2286
mysql truncate和delete的区别是什么?
问题描述:
- truncate和delete都可以快速清除表内数据,那么两者的差别是什么呢?我们以表score来一探究竟:
#建表
create table score (
id int(10) unique not null auto_increment,
stu_id int(10) not null,
c_name varchar(20),
grade int(10),
primary key(id)
);
#插入2行数据
insert into score values(null,906,'计算机',90);
insert into score values(null,906,'英语',85);
解决方法:
- truncate清除完表内数据,再插入值,主键增长会从头生成
- delete清除完表内数据后,再插入值,主键增长不会从头重新计算
- 另外,delete后面可以跟where限定筛选条件,比truncate更加精准地删除数据
工作启示:
- 除上述两种方法外,drop+create table的思路也做删除数据操作
- 删除处理“粗暴程度”(也代表“速度”)从高到低依次是:drop-->truncate-->delete
- 只有delete操作可以回滚,更符合业务端谨慎操作的要求
0.0000
0
2
关注作者
收藏
推荐帖子
0条评论
0条评论
1条评论