内容目录
由于业务需要,有的时候我们需要按天建立数据表来记录数据,那么数据过期后还在积压浪费磁盘空间,那么我们就需要进行批量清理。这里我只想讲下我需要的批量删除多个前缀类别的表的方法。
关于单前缀表的方法的大家可以参考以下两篇文章
下面直接贴上我的代码,大家可以按照自己实际情况修改
#!/bin/bash table_arr=("a" "b" "c" "d") #所要删除的表前缀数组(不含日期) database="abcd" #所要删除的表所在的库 user="root" #数据库账号 password="password" #数据库密码 rule="_201608" #所要删除的表前缀的日期特征规则 for table_pre in ${table_arr[@]} do drop_table=`mysql -u${user} -p${password} -e "SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' ) AS statement FR OM information_schema.tables WHERE table_schema = '${database}' AND table_name LIKE '${table_pre}${rule}%';"| grep -v statement` echo ${drop_table} #打印单前缀表删除的sql语句 mysql -u${user} -p${password} -e "use ${database};${drop_table}" #执行删除命令 done
===============华丽的分隔线===================
附上2017/11/23的升级版
MySQL批量删除多库指定多前缀表的方法【升级版】
[…] 之前写过一遍 MySQL批量删除指定多前缀表的方法 可以简单对单库多表进行批量删除,但是需要每次修改具体的时间,对于多库处理也不是很友好,所以这次一并优化下。 […]