MySQL truncate table语句

• Truncate table语句用来删除/截断表里的所有数据
• 和delete删除所有表数据在逻辑上含义相同,但性能更快
• 类似执行了drop table和create table两个语句

mysql> select * from students_bak;
+-----+----------+--------+---------+
| sid | sname    | gender | dept_id |
+-----+----------+--------+---------+
| 101 | zhangsan | male   |      10 |
|   1 | aa       | 1      |       1 |
+-----+----------+--------+---------+
2 rows in set (0.00 sec)

mysql> truncate table students_bak;
Query OK, 0 rows affected (0.16 sec)

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

mysql> set autocommit=off;
Query OK, 0 rows affected (0.01 sec)

mysql> select * from students3;
+-----+-------+--------+---------+--------+
| sid | sname | gender | dept_id | sname2 |
+-----+-------+--------+---------+--------+
| 100 | NULL  | 1      |       1 | NULL   |
+-----+-------+--------+---------+--------+
1 row in set (0.01 sec)

mysql> truncate table students3;
Query OK, 0 rows affected (0.06 sec)

mysql> rollback;
Query OK, 0 rows affected (0.00 sec)

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

mysql> delete from students;
Query OK, 5 rows affected (0.00 sec)

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

mysql> rollback;
Query OK, 0 rows affected (0.07 sec)

mysql> select * from students;
+-----+-------+--------+---------+
| sid | sname | gender | dept_id |
+-----+-------+--------+---------+
|   1 | aa    | 3      |       1 |
|   4 | cc    | 3      |       1 |
|   5 | dd    | 1      |       2 |
|   6 | aac   | 1      |       1 |
|  10 | a     | 1      |       1 |
+-----+-------+--------+---------+
5 rows in set (0.00 sec)

 

posted @ 2020-04-16 21:27  丁海龙  阅读(32309)  评论(0编辑  收藏  举报