原文:MySql批量drop table

今天发现数据库中很多没用的表,想清理掉。

发现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参数来直接执行命令。

最新文章

  1. gulp如何使用
  2. vmware中虚拟机与主机ping不通,桥接模式,IP地址在同一网段,无法互ping!
  3. 基本变换(读书笔记5 --- Real-Time rendering)
  4. C#之设置无边框后如何移动窗体(转)
  5. iOS 工作遇到问题记录
  6. Map在内存中的结构
  7. SaltStack 最新版WebUI部署
  8. Oracle分析函数 — sum, rollup, cube, grouping用法
  9. Git 常用配置和使用
  10. java Active Object模式(下)
  11. 设置 git config 的一些默认配置
  12. cf459A Pashmak and Garden
  13. C# Code Snip
  14. Java虚拟机参数设置(转)
  15. web服务器之nginx和apache的区别
  16. Django缓存机制--rest_framework中节流源码使用的就是django提供的缓存api
  17. iview 表单非空验证
  18. The 2018 ACM-ICPC Asia Beijing Regional Contest
  19. 纯CSS实现展开列表
  20. Linux下Nginx安装

热门文章

  1. asp.net Code学习二(使用vs 2015 update 3)
  2. 《ZigBee Wireless Networking》学习笔记【1】
  3. 24.C语言最全排序方法小结(不断更新)
  4. Appium_Java_API
  5. MySQL主从复制之Mycat简单配置和高可用
  6. iOS_02_第一个C语言程序(理解编译、连接、运行)
  7. 微信小程序踩坑- tabBar.list[3].selectedIconPath 大小超过 40kb
  8. [D3] Build a Scatter Plot with D3 v4
  9. js进阶 12-16 jquery如何实现通过点击按钮和按下组合键两种方式提交留言
  10. Snail—Hibernate之自写固定组件