Puoi usare information_schema per trovare i nomi delle tabelle e persino formattare i risultati come un gruppo di DROP dichiarazioni.
SELECT CONCAT('DROP TABLE ', TABLE_NAME, '; ')
FROM information_schema.tables
WHERE table_schema = DATABASE() AND table_name NOT IN ('foo', 'bar', 'baz');
(Il DATABASE() la funzione restituisce l'attuale use 'd database.)
Usando PREPARE e EXECUTE , potresti anche evitare il copia e incolla e (in MySQL 5.0.13 e versioni successive) scrivere una procedura memorizzata per farlo.