我有一个数据库,我有永久版本的表,我制作副本然后转换为内存引擎以获得更快的性能。有没有办法按引擎类型删除数据库中的所有表?有点像:
drop * from db1 where engine = memory;
有什么建议吗?
答案 0 :(得分:3)
您可以使用以下查询获取表名列表:
select table_name
from information_schema.tables
where table_schema = 'db1' and engine = 'memory';
然后生成一个查询以删除它们。据我所知,你不能在drop语句中使用表达式/子查询作为表名,所以你必须使用2个查询或为此创建一个存储过程。