Możesz użyć information_schema znaleźć nazwy tabel, a nawet sformatować wyniki jako zbiór DROP oświadczenia.
SELECT CONCAT('DROP TABLE ', TABLE_NAME, '; ')
FROM information_schema.tables
WHERE table_schema = DATABASE() AND table_name NOT IN ('foo', 'bar', 'baz');
(DATABASE() funkcja zwraca aktualnie use bazy danych.)
Korzystanie z PREPARE i EXECUTE , możesz nawet uniknąć kopiowania i wklejania oraz (w MySQL 5.0.13 i nowszych) napisać w tym celu procedurę składowaną.