正文
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