2011-10-08 4 views
2

J'ai une base de données où j'ai des versions permanentes des tables que je fais des copies, puis les convertir en moteur de mémoire pour des performances plus rapides. Est-il possible de supprimer toutes les tables dans une base de données par type de moteur? Quelque chose dans le style de:MySQL drop tables où le moteur est la mémoire

drop * from db1 where engine = memory; 

Des suggestions?

+0

Cela appartient à dba.stackexchange.com –

Répondre

3

Vous pouvez obtenir la liste des noms de table avec la requête suivante:

select table_name 
from information_schema.tables 
where table_schema = 'db1' and engine = 'memory'; 

Et puis générer une requête pour les laisser tomber. Pour autant que je sache, vous ne pouvez pas utiliser expression/sous-requête pour un nom de table dans l'instruction drop, vous devrez donc utiliser 2 requêtes ou créer une procédure stockée pour cela.