Vous pouvez utiliser information_schema pour trouver des noms de table, et même formater les résultats comme un tas de DROP déclarations.
SELECT CONCAT('DROP TABLE ', TABLE_NAME, '; ')
FROM information_schema.tables
WHERE table_schema = DATABASE() AND table_name NOT IN ('foo', 'bar', 'baz');
(La DATABASE() la fonction renvoie le use actuellement 'd base de données.)
Utilisation de PREPARE et EXECUTE , vous pouvez même éviter le copier-coller et (dans MySQL 5.0.13 et versions ultérieures) écrire une procédure stockée pour le faire.