一、前言
因为做数据库的测试,创建了一万多张表,测试完成后要删除这些表,删除数据有命令delete from user where name like 'test_%'; 可以用,但是删除表没有 drop table like "test_%";这样的命令,所以要自己组拼接一下。
有两种方法,第一种是拼接可执行的sql。
二、拼接可执行sql
SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' ) AS statement FROM information_schema.tables WHERE table_schema = '数据库名称' AND table_name LIKE 'test_%';
可得到结果:
DROP TABLE test_2021001,tmp_2021002,tmp_2021003,tmp_2021004;
执行拼接的sql,删除完成。
因为我的表比较多,执行拼接sql语句时,不能完全将全部符合条件的表拼接出来,所以我将符合条件的表查询出来,并写的java程序拼接的sql;
SHOW TABLES LIKE 'test_%';