博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL批量删除表
阅读量:2498 次
发布时间:2019-05-11

本文共 707 字,大约阅读时间需要 2 分钟。

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指令中的第一行,因为第一行是无效的
       

转载地址:http://fybgb.baihongyu.com/

你可能感兴趣的文章
第一轮面试题
查看>>
2020-11-18
查看>>
Docker面试题(二)
查看>>
一、redis面试题及答案
查看>>
消息队列2
查看>>
C++ 线程同步之临界区CRITICAL_SECTION
查看>>
测试—自定义消息处理
查看>>
MFC中关于虚函数的一些问题
查看>>
根据图层名获取图层和图层序号
查看>>
规范性附录 属性值代码
查看>>
提取面狭长角
查看>>
Arcsde表空间自动增长
查看>>
Arcsde报ora-29861: 域索引标记为loading/failed/unusable错误
查看>>
记一次断电恢复ORA-01033错误
查看>>
C#修改JPG图片EXIF信息中的GPS信息
查看>>
从零开始的Docker ELK+Filebeat 6.4.0日志管理
查看>>
How it works(1) winston3源码阅读(A)
查看>>
How it works(2) autocannon源码阅读(A)
查看>>
How it works(3) Tilestrata源码阅读(A)
查看>>
How it works(12) Tileserver-GL源码阅读(A) 服务的初始化
查看>>