MySql批量drop table
来源:互联网 发布:2017年云计算行业报告 编辑:程序博客网 时间:2024/06/06 02:55
今天发现数据库中很多没用的表,想清理掉。
发现mysql好像不支持类似这样的写法:drop table like "%r"
在oracle中,查了资料,是可以通过其他方式来实现:看这里【我顶!链接丢了!】
那么想在mysql中实现,怎么做呢?
两个思路:
第一、修改mysql源码,在drop的时候加上like关键字支持。
第二、写一个脚本,在数据库之外执行。
-----------------------------《混个》-------------------------------
第一个方法,现在还没有办法去做到。【水平不够=。=】
第二个方法的思路:
1、连接数据库
2、查询出所有的符合条件的表
3、挨个删除【删除过程遇到错误输出提示即可】
针对第二个方法的脚本如下:
先创建一些表:脚本如下
- #! /bin/bash
- for((i=1;i<=10;i++));
- do
- mysql -P3307 -uroot -proot -e"use test;create table tb_$i(id int);"
- done;
然后创建删除shell:
- #! /bin/bash
- word=`echo $1`
- params=`echo $#`
- echo "your input param is|"$word"|"
- #param is ok?
- if [ $params -lt 1 ]
- then
- echo "usage:drop 'yourword'"
- exit
- fi
- #connect mysql and read tb names
- var=$(mysql -P3307 -uroot -proot -e"use test;show tables like '$word';")
- count=0
- #read table names
- for i in $var;
- do
- let count=$count+1
- if [ $count -ne 1 -a $count -ne 2 ]
- then
- #delete from db
- echo "deleting ...$i"
- mysql -P3307 -uroot -proot -e"use test;drop table $i"
- fi
- done;
上面是drop脚本。使用方法:
drop ‘%a%’
需要在后面的参数中指明要匹配的内容。与like关键字后面要加的内容一样。
脚本中每次执行都需要连接数据库。效率比较低下。但是对于少量的表,不会有太大区别。----------------------------------------------------------
if [ $count -ne 1 -a $count -ne 2 ]意思是说,不考虑第一个和第二个参数。因为从mysql读出来的表名称是这样的:;
Tables_in_test () tb_1 tb_10 tb_2 tb_3 tb_4 tb_5 tb_6 tb_7 tb_8 tb_9
前两个需要忽略。
--------------------------------------------------------------
mysql -P3307 -uroot -proot -e"use test;show tables like '$word';"
mysql可以用-e参数来直接执行命令。
- MySql批量drop table
- MySql批量drop table
- MySql批量drop table
- MySQL drop table操作风险
- MySQL DROP TABLE IF EXISTS
- MySQL DROP TABLE操作以及 DROP 大表时的注意事项
- MySQL DROP TABLE操作以及 DROP 大表时的注意事项
- mysql删除大表更快的drop table办法
- mysql删除大表更快的drop table办法
- mysql删除大表更快的drop table办法
- mysql删除大表更快的drop table办法
- mysql删除大表更快的drop table办法
- Mysql命令drop table:删除数据表
- MySQL命令drop table:删除数据表
- mysql:sql drop table (删除表)
- mysql删除大表更快的drop table办法
- MySQL对 DROP TABLE 处理过程(转自老金)
- mysql删除大表更快的drop table办法(转老金)
- 动态代理 简单实例二
- 基于visual Studio2013解决面试题之0807strstr函数
- 基于visual Studio2013解决面试题之0808寻找中间数
- 基于visual Studio2013解决面试题之0901奇偶站队
- 复习 2 java 面向对象之static 和final
- MySql批量drop table
- 基于visual Studio2013解决面试题之0902内存拷贝
- awk中的getline的用法
- 基于visual Studio2013解决面试题之0905子串数量
- MySql索引的一个技巧
- 基于visual Studio2013解决面试题之0907大数乘法
- 基于visual Studio2013解决面试题之0908最大连续数字串
- 局部图像特征描述概述
- javascript数据类型(以及它们的一些特性与判断)