mysql 批量删除带有相同前缀的表
1. mysql中还没有现成的工具可以实现批量删除相同前缀的表,所以我们可以通过构造语句来进行删除;
2. 如果想一条一条地删,那么使用如下方法构造:
Select CONCAT( 'drop table ', table_name, ';' )
FROM information_schema.tables
Where table_name LIKE 'prefix_%';
例如,我们想要删除所有前缀为ZipSpeed 的表,那么我们的语句为:
Select CONCAT( 'drop table ', table_name, ';' )
FROM information_schema.tables
Where table_name LIKE 'ZipSpeed%';
执行语句,得到如下结果:
mysql> Select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables Where table_name LIKE 'ZipSpeed%'
-> ;
+------------------------------------------+
| CONCAT( 'drop table ', table_name, ';' ) |
+------------------------------------------+
| drop table ZipSpeedapril2016; |
| drop table ZipSpeedfebruary2016; |
| drop table ZipSpeedjanuary2016; |
| drop table ZipSpeedmarch2016; |
+------------------------------------------+
4 rows in set (0.01 sec)
然后复制出来一条一条地执行就可以了。
3. 如果想一下子全部删除,那么使用如下构造语句:reference
SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' )
AS statement FROM information_schema.tables
WHERE table_schema = 'database_name' AND table_name LIKE 'ZipSpeed%';
执行语句,得到如下结果:
drop table ZipSpeedapril2016,ZipSpeedfebruary2016,ZipSpeedjanuary2016,ZipSpeedmarch2016;
然后复制出来执行就可以了。