当前位置:主页 > 数据库 > Mysql >

MySQL用truncate命令快速清空一个数据库中的所有表

时间:2021-05-25 08:24:33 | 栏目:Mysql | 点击:

1. 先执行select语句生成所有truncate语句

语句格式:

select CONCAT('truncate TABLE ',table_schema,'.',TABLE_NAME, ';') from INFORMATION_SCHEMA.TABLES where table_schema in ('数据库1','数据库2'); 

以名为dbname的数据库为例,执行select语句:

mysql> select CONCAT('truncate TABLE ',table_schema,'.',TABLE_NAME, ';') from INFORMATION_SCHEMA.TABLES where table_schema in ('dbname'); 
+------------------------------------------------------------+ 
| CONCAT('truncate TABLE ',table_schema,'.',TABLE_NAME, ';') | 
+------------------------------------------------------------+ 
| truncate TABLE dbname.ABOUTUSINFO;       | 
| truncate TABLE dbname.ABUTMENT;        | 
| truncate TABLE dbname.ABUTMENTFILE;       | 
| truncate TABLE dbname.ACHVORG;        | 
| truncate TABLE dbname.WORKFLOWNODE;       | 
| truncate TABLE dbname.ZONESERVICE;       | 
| truncate TABLE dbname.ZONESERVICEFILE;      | 
+------------------------------------------------------------+ 
7 rows in set 

mysql> 

2. 把每条truncate语句前后的“|”替换为空字符

用文本编辑器(如 Notepad++)把每条truncate语句前后的“|”替换为空字符,方便后面一次复制多条执行。

替换前: 

替换后: 

 

3. 复制truncate语句到mysql命令行执行

复制truncate语句到mysql命令行执行,可以一次复制多条执行。

mysql> truncate TABLE dbname.ZONESERVICE;  
Query OK, 0 rows affected 
mysql> 

这样就清空数据库中所有表啦,简单吧~

truncate与drop,delete的对比

上面说过truncate与delete,drop很相似,其实这三者还是与很大的不同的,下面简单对比下三者的异同。

您可能感兴趣的文章:

相关文章