Meerdere tabellen verwijderen

Soms is het nodig om een heleboel tabellen in de database te verwijderen. Zo had ik bijvoorbeeld op een oud domein nog de tabellen van phpBB3 staan, een overblijfsel van een testforum dat al lang en breed weg is.

Nu heeft Mysql helaas geen optie om met een wildcard meerdere tabellen te selecteren. Er is dus een omweg nodig. Eerste stap is om een bestandje te maken met sql opdrachten:

for counter in `mysql -u root -p -e "show tables like 'phpbb3_%'" dbname | awk '{print $1}' | grep -v Tables`
do
echo 'drop table '$counter';' >> remove.sql
done

Tweede en laatste stap is om het sql-bestandje uit te voeren:

mysql -u root -p dbname < remove.sql

En met deze twee opdrachten heb ik alle tabellen met prefix phpbb3 verwijderd.