不少小伙伴对 MySQL 中删除数据表的命令不太熟悉,其实删除数据表本质上就是清除数据。那具体该如何操作呢?接下来为大家详细介绍 MySQL 删除数据表的命令,快来一探究竟吧!
MySQL 清空表数据三种方法
1.1 清空表数据:truncate
sql 命令
# 清空多张表、库中所有表的数据 truncate table table_name1,table_name2,...; # 清空单张表的数据 truncate table table_name;
注意:
truncate 会把表中的所有数据删除,同时释放空间,但会保留表结构。
该命令只能用于操作表,不能和 where 一起使用。
truncate 删除操作会立即生效,原数据不会放到 rollback segment 中,所以不能进行 rollback 操作,并且该操作不会触发 trigger。
truncate 删除数据后会释放表空间,还会重置 Identity(标识列、自增字段),也就是说自增列会被置为初始值,重新从 1 开始记录,而不是接着原来的 id 数继续。
truncate 删除数据后不会写服务器 log,整体删除速度较快。
1.2 删除表:drop
sql 命令
drop table table_name; drop table if exists table_name;
注意:
drop 会将整个表删除,包括表结构和数据,同时释放空间。
该操作会立即执行,执行速度是最快的。
该操作不可回滚。
1.3 删除/清空表数据:delete
sql 命令
# 删除部分数据 delete from tb_name where clause; # 清空表,仅删除数据、保留表结构,同时也不释放表空间 delete from tb_name;
注意:
delete 是删除表中数据,但不删除表结构,也不释放空间。
delete 可以删除一行、多行,甚至是整张表的数据。
每次删除一行,都会在事务日志中为所删除的每行记录一项,所以该操作可回滚。
如果不加 where 条件,就表示删除表中所有数据,仅删除数据、保留表结构,同时也不释放表空间。
MySQL、Mariadb、PostgreSQL 删除表数据、清空表命令都可以使用以上三种命令。


























