Mysql查询架构信息
2015-08-14 16:41
459 查看
今天想给整个数据库做初始化,也就是清空所有表,然后让索引归零,使用truncate table 就可以,但好多张表,怎么批量搞定呢?
有人说重建表吧,dump一下,然后再重建,但我还是想用truncate,毕竟用得熟也好理解。
但是怎么获取所有表的表名呢?然后还得手写N个Truncate ,到网上查了查,还有另一种方法可以批量获取Table的名称,并生产出Truncae Table的语句。
具体思路是 找到所有表的表名 -> 用表名自动生成语句的查询结果 -> 把查询结果复制出来 -> 运行
具体的语句就是下面这段
查询结果是这样的:
然后勾选中全选,右键->复制选择的查询记录->粘贴到执行区域->执行,就可以了,复制出来记录都是带着引号的,可以用一些编辑工具进行批量删引号,我用的sublime :-D
执行之前请小心检查,把字典表什么的去掉,否则还得重新填,而且执行前请备份当前的库,以免后悔。
好了,在回顾一下上面那条语句, 核心是查Mysql的数据库架构信息表 [information_schema.tables],语句中的
这句话是过滤掉查询结果中的视图,至于其它类型的,仔细看看查询结果,把不需要的去掉就行了,然后用CONCAT拼语句结构的查询结果去执行。
有人说重建表吧,dump一下,然后再重建,但我还是想用truncate,毕竟用得熟也好理解。
但是怎么获取所有表的表名呢?然后还得手写N个Truncate ,到网上查了查,还有另一种方法可以批量获取Table的名称,并生产出Truncae Table的语句。
具体思路是 找到所有表的表名 -> 用表名自动生成语句的查询结果 -> 把查询结果复制出来 -> 运行
具体的语句就是下面这段
SELECT CONCAT('truncate table ',table_name,';') FROM information_schema.tables WHERE table_schema = '你的数据库名' AND table_type != 'view';
查询结果是这样的:
然后勾选中全选,右键->复制选择的查询记录->粘贴到执行区域->执行,就可以了,复制出来记录都是带着引号的,可以用一些编辑工具进行批量删引号,我用的sublime :-D
执行之前请小心检查,把字典表什么的去掉,否则还得重新填,而且执行前请备份当前的库,以免后悔。
好了,在回顾一下上面那条语句, 核心是查Mysql的数据库架构信息表 [information_schema.tables],语句中的
table_type != 'view'
这句话是过滤掉查询结果中的视图,至于其它类型的,仔细看看查询结果,把不需要的去掉就行了,然后用CONCAT拼语句结构的查询结果去执行。
相关文章推荐
- MySql中truncate,delete,drop的异同点
- SQLiteOpenHelper数据库的创建or升级or增删改查
- 使用PLSQL Developer和DbVisualizer查询oracle数据库时,出现查询数据中文乱码情况
- MySQL-- 每半月一个分区,自动维护
- LR 连接oracle时,SQLState=28000 ODBC ORA ORA-01017;: Invalid username/password; logon denied
- SQLServer 可更新订阅数据在线架构更改(增加字段)方案
- django连接mysql数据库,往数据库表中添加字段
- windows中安装oracle11g和安装PLSQL Developer
- mysql basic operation,mysql总结
- mysql basic operation,mysql总结
- 设置PL/SQL Developer 字符集
- PL/SQL Developer记住用户名和密码
- 集中化监控SQL Server数据库
- 举例说明:Hadoop vs. NoSql vs. Sql vs. NewSql
- hadoop学习笔记之HiveSQL 数据查询
- 【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构
- PLSQL Developer报“动态执行表不可访问,本会话的自动统计被禁止”的解决方案(转)
- hadoop学习笔记之HiveSQL DML
- mysql高可用架构之mysql-mmm配置详解
- hadoop学习笔记之HiveSQL DDL