针对mysql批量删除表

背景:

项目进行微服务拆分,拆分之后,需要把以前的表清理掉,但是删除表的语句,都是一个个执行的,但是服务下面50多张表,一个个执行,比较麻烦,如果表在多些,还不把人累死,那我们可以批量删除表嘛,可以的,只不过是曲折路线

方案:

步骤1:

执行如下sql,拼接删除表语句

select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables Where table_name LIKE 't_promotion_%';

 

注意:我这查询出来表名字有重复的,sql可以稍微修改下

Select DISTINCT(CONCAT( 'drop table ', table_name, ';' )) FROM information_schema.tables Where table_name LIKE 't_promotion_%';

步骤2:

导出查询结果,处理下不需要的字符,然后执行对应sql就行

注意:这里处理不必要的特殊字符时候,用notepad的批量替换功能就行了