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.