2019-01-31
                                阅读量:
                                2939
                            
                        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.0000
                             0
                                0
                             2
                                2
                             
                                
                             关注作者
                                关注作者
                             收藏
                                    收藏
                                                            
                        
                        推荐帖子
                    
                0条评论
                        1条评论
                        0条评论
                         
             
                 
                 
                            
 发表评论
发表评论
 
                             
                             
                             
                             
                             
                             
                                     
                                    