MySQL用truncate命令快速清空一个数据库中的所有表
2020-11-18 04:07
2521 查看
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清空数据库表 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:相关文章推荐
- mysql 怎样清空一个数据库中的所有表
- mysql 怎样清空一个数据库中的所有表
- mysql 怎样清空一个数据库中的所有表
- mysql 怎样清空一个数据库中的所有表
- mysql 怎样清空一个数据库中的所有表
- mysql 怎样清空一个数据库中的所有表
- 使用truncate命令清空当前用户所有表的所有数据
- mysql备份了所有数据库 但只想恢复其中一个数据库
- 快速清空数据库中所有表
- MySQL删除一个数据库下所有表
- mysql 单独备份一个数据库的所有表
- [MySQL] TRUNCATE数据库所有表,打印所有TRUNCATE表语句
- 清空一个数据库中所有数据
- mysql通过文档读取并执行命令之快速为mysql添加多用户和数据库技巧
- 在Mysql中怎样返回一个数据库的所有表名,列名数据类型备注
- oracle mysql sqlserver 查看当前所有数据库及数据库基本操作命令
- sql (mysql)实现查询某一个经纬度周围500米距离的餐馆,数据库存放所有餐馆的经纬度。
- Mysql中返回一个数据库的所有表名,列名数据类型备注
- Mysql中怎样返回一个数据库的所有表名,列名数据类型备注
- Mysql中返回一个数据库的所有表名,列名数据类型备注