Mysql批量删除相同前缀的表

每日需要Cron跑一下爬虫脚本,生成当日数据.今天发现累计了非常多的相同前缀的历史表数据,故删除之!

  • 命令非常简单
    1
    2
    3
    Select CONCAT( 'drop table ', table_name, ';' )
    FROM information_schema.tables
    Where table_name LIKE 'sound_201701_%';
  • 执行上述命令后,就显示匹配的Drop命令,如下图.直接复制执行就ok了.

Drop

如果需要批量修改表名,可以使用如下命令

1
2
3
4
5
6
7
Select CONCAT( 'ALTER TABLE ', table_name, 'RENAME TO ', table_name,';' )
FROM information_schema.tables
Where table_name LIKE 'sound_%';
=>
ALTER TABLE sound_aaa RENAME TO sound_aaa;
ALTER TABLE sound_bbb RENAME TO sound_bbb;
(在编辑器中将“RENAME TO de”批量改为想设置的表前缀,再执行此SQL语句即可批量修改表名。)