主页 > 知识库 > MySQL用truncate命令快速清空一个数据库中的所有表

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

热门标签:呼叫中心市场需求 网站排名优化 Linux服务器 铁路电话系统 地方门户网站 服务外包 AI电销 百度竞价排名

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语句将表所占用的空间全释放掉。

到此这篇关于MySQL用truncate命令快速清空一个数据库中的所有表 的文章就介绍到这了,更多相关MySQL truncate清空数据库表 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • Navicat premium连接数据库出现:2003 Can''t connect to MySQL server on''localhost''(10061)
  • 阿里云服务器安装Mysql数据库的详细教程
  • MySQL数据库备份过程的注意事项
  • 在IntelliJ IDEA中使用Java连接MySQL数据库的方法详解
  • MySql设置指定用户数据库查看查询权限
  • Jmeter基于JDBC请求实现MySQL数据库测试
  • python连接mysql数据库并读取数据的实现
  • Python 操作 MySQL数据库
  • 如何把本地mysql迁移到服务器数据库

标签:湖南 兰州 崇左 仙桃 黄山 铜川 衡水 湘潭

巨人网络通讯声明:本文标题《MySQL用truncate命令快速清空一个数据库中的所有表》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266