MySQL用truncate命令快速清空一个数据库中的所有表
#代码知识 发布时间: 2026-01-12
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很相似,其实这三者还是与很大的不同的,下面简单对比下三者的异同。
- truncate与drop是DDL语句,执行后无法回滚;delete是DML语句,可回滚。
- truncate只能作用于表;delete,drop可作用于表、视图等。
- truncate会清空表中的所有行,但表结构及其约束、索引等保持不变;drop会删除表的结构及其所依赖的约束、索引等。
- truncate会重置表的自增值;delete不会。
- truncate不会激活与表有关的删除触发器;delete可以。
- truncate后会使表和索引所占用的空间会恢复到初始大小;delete操作不会减少表或索引所占用的空间,drop语句将表所占用的空间全释放掉。
上一篇 : Vue 防止短时间内连续点击后多次触发请求的操作
下一篇 : 解决使用IDE Run运行出错package pack/test is not in GOROOT (/usr/local/go/src/pack/test)
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!