批量删除mysql数据表

时间 : 16-06-18 栏目 : Mysql, 未分类 作者 : 江上轻烟 评论 : 0 点击 : 762 次

批量删除mysql数据表

问题描述

工作中我们会遇到批量删除一些mysql数据表的情况,比如现在有100个带'2012_'前缀的表,如何将其批量删除,it's a problem.

假设

数据库:test

表特征:'2012_'前缀

mysql用户名:root

mysql密码:passwd

解决方案

echo "select concat('drop table ',  table_name ,';') from TABLES where TABLE_SCHEMA ='test' and table_name like '%2012\_%' ;" | mysql information_schema -uroot -ppasswd| sed -n '2,$p' | mysql test -uroot -ppasswd

要点解析

  1. 上述命令应用了“管道”
  2. 'select concat'拼接出了查询语句
  3. mysql中有一个默认存在的数据库information_schema,其中包含所有mysql的数据表信息
  4. sed -n '2,$p'是取出管道输入的第二行到末尾行

注意事项

  1. 如果你的环境变量中没有加入mysql的命令,把上述mysql命令替换为完整命令路径
  2. 数据无价,谨慎删除!

本文标签

除非注明,文章均为( 江上轻烟 )原创,转载请保留链接: http://www.zhizhi123.com/?p=250


0