首页 > 技术文章 > SQL删除语句drop,delete与truncate的区别

jiehao-yu 2021-05-03 16:46 原文

SQL删除语句drop,delete与truncate的区别

相同点:

drop、truncate和不带where子句的delete,都会删除表内的数据

不同点:

  • truncate会清除表数据并重置id从1开始,delete就只删除记录,drop可以用来删除表或数据库并且将表所占用的空间全部释放
  • truncate和delete只删除数据不删除表的结构。drop语句将删除表的结构。
  • 速度上一般来说: drop> truncate > delete
  • 使用上
  • delete是DML语句,不会自动提交。drop/truncate都是DDL语句,执行后会自动提交。

总结

想删除部分数据行用 delete

想删除表用 drop

想保留表而将所有数据删除,如果和事务无关,用truncate即可,如果和事务有关还是用delete。

推荐阅读