【发布时间】:2014-07-25 13:26:15
【问题描述】:
我在这个问题上找到了另一个帖子,但我无法使用它的解决方案,所以我想我会问得更清楚更详细。
我有一个代表 vBulletin 论坛的大型 MySQL 数据库。几年来,这个论坛每次视图都报错,每次新建一个表,命名为aagregate_temp_1251634200、aagregate_temp_1251734400等。数据库中大约有20000个这样的表,我想删除它们全部。
我想发出一个相当于DROP TABLE WHERE TABLE_NAME LIKE 'aggregate_temp%'; 的命令。
不幸的是,这个命令不起作用,并且这个问题的谷歌结果充满了我无法理解的复杂存储过程,并且似乎都是针对不同海报的更复杂问题量身定制的。
是否可以编写一个基于name like 匹配删除多个表的简单语句?
【问题讨论】:
-
作为具有
FILE权限的管理员,我会从命令行执行此操作:SELECT CONCAT('DROP TABLE ', TABLE_SCHEMA,'.',TABLE_NAME,';') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 'aggregate_temp%' INTO OUTFILE '/tmp/drops.sql'; SOURCE /tmp/drops.sql';。