drop、truncate、delete区别

Posted by JimWang on 2021-02-20

drop、truncate、delete区别

  • drop 直接删除表;
  • truncate 删除表中数据,再插入时自增长id又从1开始 ;
  • delete 删除表中数据,可以加where字句。

drop table:

  • 属于DDL(Data Definition Language,数据库定义语言)
  • 不可回滚
  • 不可带 where
  • 删除表内容和结构
  • 删除速度快

truncate table:

  • 属于DDL(Data Definition Language,数据库定义语言)
  • 不可回滚
  • 不可带 where
  • 删除表内容
  • 删除速度快

delete from:

  • 属于DML
  • 可回滚
  • 可带where
  • 表结构在,表内容要看where执行的情况
  • 删除速度慢,需要逐行删除

使用简要说明:

  • 不再需要一张表的时候,用drop
  • 想删除部分数据行时候,用delete,并且带上where子句
  • 保留表而删除所有数据的时候用truncate

部分转载自:https://www.yuque.com/fanzhengxu/tba6b8/dx0hvw#oWBVa