我们在项目中会遇到这样的问题,有一些数据库表是不需要的,这时候就涉及到删除表操作,一张一张删除肯定会不耐烦,尤其是在二次开发中,这时候就要考虑批量删除了
这里拿最近做的项目举个例子:
我需要删除数据库yzyxcx_taokeapp中表前缀是hjmall_的表,将近100张表
-- 删除数据库名为yzyxcx_taokeapp'数据库的以hjmall_开头的所以表
select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables where table_name REGEXP 'hjmall_' and table_schema='yzyxcx_taokeapp' into outfile '/tmp/mysql/backup/del.sql';
where条件中可以用正则匹配,也可以用like
-- 删除数据库名为yzyxcx_taokeapp'数据库的以hjmall_开头的所以表
SELECT CONCAT('drop table ',t.`TABLE_NAME`,'; ') dropsql FROM information_schema.`TABLES` t WHERE t.`TABLE_NAME` LIKE 'hjmall_%' AND t.table_schema='yzyxcx_taokeapp';
之后直接运行del.sql就可以了
source del.sql