清空表——truncate
# 清空表
# Truncate table
虽然 delete from <TableName>
可以清空表,但它会一条一条的遍历这样删除,会很慢!
清空表通常使用 truncate table <TableName>;
,它会克隆表的结构做个新表,然后把原表直接销毁掉。
# Example
有如下一张 student
表:
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | Tom | 19 |
| 2 | Tom | 10 |
| 3 | Jim | 20 |
| 4 | Jim | 39 |
+----+------+------+
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
清空表:
turncate table student;
1
查看:成功
mysql> select * from student;
Empty set (0.00 sec)
1
2
2
# 反例 - 不建议使用 delete from <TableName>
来清空表!
有如下一张 student
表:
+----+-------+------+
| id | name | age |
+----+-------+------+
| 2 | Tom | 18 |
| 3 | Jerry | 22 |
+----+-------+------+
1
2
3
4
5
6
2
3
4
5
6
使用 delete from <TableName>
来清空表:
delete from student;
1
然后像下面这样追加一条数据(注意 null
):
insert into student values (null, 'Jim', 20);
1
查看表:
+----+-------+------+
| id | name | age |
+----+-------+------+
| 4 | Jim | 20 |
+----+-------+------+
1
2
3
4
5
2
3
4
5
注意这一条数据的 id
,居然是 4
?! ——一定要去研究一下为什么会这样。
而如果使用 turncate table student
清空表则不会出现这样的情况。
编辑 (opens new window)
上次更新: 2022/09/26, 16:55:15