Mysql truncate 清空表数据

338 阅读1分钟
  • truncate: 清空指定表中的所有数据,并将表恢复到"初始状态",就跟刚创建的表一样。

    truncate 表名;
    
  • 测试数据:

mysql> select * from test;
+----+-------+------+------+
| id | name  | sex  | age  |
+----+-------+------+------+
|  1 | name1 ||    5 |
|  2 | name2 ||   10 |
|  3 | name3 ||   15 |
|  4 | name4 ||   20 |
+----+-------+------+------+
通过 delete 的方式清空表数据
mysql> delete from test;

mysql> select * from test;
Empty set (0.00 sec)

插入一条新数据
mysql> insert into test (name, sex, age) values ('name5', '女', 25);

然后查询出来的表数据你会发现,主键 id 不是 1,而是 5,说明它还在之前的基础上自增长了。
mysql> select * from test;
+----+-------+------+------+
| id | name  | sex  | age  |
+----+-------+------+------+
|  5 | name5 ||   25 |
+----+-------+------+------+

使用 truncate 清空重置表
mysql> truncate test;
Query OK, 0 rows affected (0.01 sec)

在插入一条数据
mysql> insert into test (name, sex, age) values ('name5', '女', 25);

发现查询出来的数据 主键 id 从 1 开始了,这样就相当于表回到了“初始状态”
mysql> select * from test;
+----+-------+------+------+
| id | name  | sex  | age  |
+----+-------+------+------+
|  1 | name5 ||   25 |
+----+-------+------+------+