首页 > 编程学习 > MySQL删除表数据总结(DELETE、TRUNCATE、DROP)

(1)当我们不再需要该表时,使用DROP,会连表一起删掉,无法找回。速度很快。

DROP TABLE web_tbl_search;

在这里插入图片描述
(2)保留表结构,只删除表数据,使用TRUNCATE,数据删除后,无法找回。速度很快。不能与WHERE一起使用。
TRUNCATE TABLE system_sys_attachment;
在这里插入图片描述
(3)保留表结构,只删除表数据,使用DELETE,可恢复删除的数据,速度较慢,可以与WHERE联合使用。
在这里插入图片描述
(4)DELETE与TRUNCATE的区别

  • TRUNCATE删除后不记录MySQL日志,因此不可以rollback,更不可以恢复数据;而DELETE可以rollback ;原理:TRUNCATE相当于保留原MySQL表结构,重新创建了这个表,所有的状态都相当于新的,而DELETE的效果相当于一行行删除,所以可以rollback。
  • TRUNCATE比DELETE快,而且 TRUNCATE删除后将重建索引(新插入数据后id从0开始记起),而 DELETE不会删除索引 (新插入的数据将在删除数据的索引后继续增加)。
  • DELETE可以和WHERE联合使用,TRUNCATE不行。
  • TRUNCATE不会触发任何 DELETE触发器。
Copyright © 2010-2022 dgrt.cn 版权所有 |关于我们| 联系方式