MySQL 数据表清空


MySQL 数据表清空


正文

drop 命令,删除表,并释放空间,将表删除的一干二净。

我们需要不删除表的情况下删除所有的行,可以使用的命令有 truncate 和 delete。

  • truncate是整体删除(速度较快), delete是逐条删除(速度较慢)。
  • truncate不写服务器log,delete写服务器log,也就是truncate效率比delete高的原因。
  • truncate不激活trigger(触发器),但是会重置Identity(标识列、自增字段), 相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的ID数。 而delete删除以后,Identity依旧是接着被删除的最近的那一条记录ID加1后进行记录。
  • 如果只需删除表中的部分记录,只能使用DELETE语句配合where条件。 DELETE FROM wp_comments WHERE……

执行速度:

drop > truncate > delete

DROP

删除表内容和结构,释放空间,没有备份表之前要慎用。

DROP table_name;

TRUNCATE

删除表的内容,表的结构存在,可以释放空间,没有备份表之前要慎用。

TRUNCATE TABLE table_name;
--或
TRUNCATE table_name;

DELETE

删除表的内容,表的结构还存在,不释放空间,可以回滚恢复。

删除表中所有的行:

DELETE FROM table_name;
--或
DELETE * FROM table_name;

DELETE语法结构:

DELETE FROM 表名称 WHERE 列名称 = 值;






参考资料

Mysql清空表(truncate)与删除表中数据(delete)的区别 http://blog.is36.com/mysql_difference_of_truncate_and_delete/

SQL DELETE 语句 https://www.runoob.com/sql/sql-delete.html


返回