首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 批量刪除表:利用 information_schema 動態生成 DROP 語句

     編輯:MySQL 綜合教學

MySQL 批量刪除表:利用 information_schema 動態生成 DROP 語句

場景

定時任務失控產生近 3000 張帶時間後綴的表 (如 weekly_with_you_2014_12_28),逐個手刪極慢。

原理

  1. 查詢 information_schema.TABLES 篩選目標資料庫與表名模式。
  2. 拼接生成 DROP TABLE `tbl_name`; 語句。
  3. 管道餵給 mysql 客戶端執行。

一鍵命令

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

關鍵點

  • sed -n '2,$p' 跳過第一行標題列 (「DROP TABLE」)。
  • 若表數極大,建議分批或在事務中執行 (但 DDL 隱式提交,無法事務包裹)。
  • 執行前務必備份或確認模式精確,防誤刪。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved