参考文档:

https://blog.csdn.net/iw1210/article/details/79586033

https://www.cnblogs.com/hougang/p/mysql_truncate.html

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

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语句前后的“|”替换为空字符,方便后面一次复制多条执行。
替换前:

学习activiti的时候使用truncate命令清空表-LMLPHP

替换后:

学习activiti的时候使用truncate命令清空表-LMLPHP

3. 复制truncate语句到mysql命令行执行
复制truncate语句到mysql命令行执行,可以一次复制多条执行。
mysql> truncate TABLE dbname.ZONESERVICE;     
Query OK, 0 rows affected
mysql>

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

执行报错了,提示外键约束的表不能删除

1701 - Cannot truncate a table referenced in a foreign key constraint (`db_activiti`.`act_ru_variable`, CONSTRAINT `ACT_FK_VAR_BYTEARRAY`)

1701 - Cannot truncate a table referenced in a foreign key constraint (`db_activiti`.`act_id_membership`, CONSTRAINT `ACT_FK_MEMB_GROUP`)

学习activiti的时候使用truncate命令清空表-LMLPHP

解决办法,参考了第二个文档:

一、为什么要使用truncate

使用truncate截断表速度快,不仅可以清空表数据,而且可以使自增列重新从1开始

二、出现错误的原因

Mysql中如果表和表之间建立了外键约束,则无法删除表及修改表结构

三、解决方案

在Mysql中取消外键约束:  SET FOREIGN_KEY_CHECKS=0;  
 
执行 truncate tablename
 
然后再设置外键约束: SET FOREIGN_KEY_CHECKS=1;  

其他没使用的参考文档,但提供了一下思路:

https://www.cnblogs.com/wusir/p/3631647.html

05-11 19:35