程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL批量刪除表

MySQL批量刪除表

編輯:MySQL綜合教程

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved