drop、delete与truncate

三者的区别

SQL中的drop、delete、truncate都表示删除,但是三者有一些差别 

delete和truncate只删除表的数据不删除表的结构

速度,一般来说: drop> truncate >delete

delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;

如果有相应的trigger,执行的时候将被触发.

truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.  

 

删除表中所有记录使用delete from 表名; 还是用truncate table 表名;

删除方式:delete 一条一条删除,不清空auto_increment记录数。

truncate 直接将表删除,重新建表,auto_increment将置为零,重新开始,速度更快。

在什么场景下使用

1.不再需要一张表的时候,用drop

2.想删除部分数据行时候,用delete,并且带上where子句

3.保留表而删除所有数据的时候用truncate

猜你喜欢

转载自blog.csdn.net/qq_35642036/article/details/82820114
今日推荐