码迷,mamicode.com
首页 > 数据库 > 详细

MySQL批量删除表

时间:2014-12-29 09:07:31      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:mysql 批量 删除表

overview

    之前在工作中调试时建了一个每分钟执行一次的cron定时任务,每分钟均产生一个带时间信息的表名称,并忘了删除这个定时任务,待发现时已经有将近3000个新建的表了,由于单条单条地删除很慢,现需要批量删除这些带时间信息的表。


theory&&measure

theory

1 登陆mysql的information数据库,查找tables表,找出需要删除的表所在的数据库下的    所有符合时间要求的表名称
2 将查询出来的表名称拼接成drop table指令数据的形式,例如
   drop table weekly_with_you_2014_12_28;
3 登陆到mysql的yc_market数据库,执行上一步输出的所有drop指令


measure

具体实现非常简单,只需要在linux终端敲入如下命令:
[jiangjianjian@h6 ~]$ echo "select concat(‘drop table ‘,  table_name ,‘;‘) from TABLES where TABLE_SCHEMA =‘yc_market‘ and table_name like ‘weekly_with_you_2014%‘ ;" | mysql -uroot -p123456 -h127.0.0.1 information_schema | sed -n ‘2,$p‘ | mysql -uroot -p123456 -h127.0.0.1 yc_market

其中yc_marke是需要删除的表所在的数据库
       sed命令用来跳过产生的所有的drop table指令中的第一行,因为第一行是无效的
       

MySQL批量删除表

标签:mysql 批量 删除表

原文地址:http://blog.csdn.net/cug_jiang126com/article/details/42216077

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!