Will man alle Tabellen einer Datenbank löschen so gibt es dafür keine native SQL Anweisung wie TRUNCATE DATABASE oder so. Man kann sich mit einem one-liner behelfen:
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
Oft hat man auch das Problem das man nur bestimmte Tabellen aus einer Datenbank löschen möchte. Zum Beispiel wenn man mehrere Applikationen installiert und eine davon jetzt löschen möchte. Wichtig ist das die Tabellen der Applikation einen Tabellen Prefix haben. Bei Wordpress wäre das zum Beispiel ‘wp_’ als Prefix. Um nur diese aus der Datenbank zu löschen muss die obere Anweisung nur mit einem weiteren grep erweitert werden:
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | grep 'wp_.*' | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
Es empfiehlt sich das Ergebnis zuerst mal zu kontrollieren und sich die Drop Statements nur ausgeben zu lassen - also den letzten Teil (mysql -u[USERNAME]…..) einfach weglassen.