Fritz Thomas

09 Feb, 2008

How-To: Alle oder bestimmte Tabellen einer Datenbank löschen

Posted by: Fritz Thomas In: Overall

Alle Tabellen löschen

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:

1
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]

Mittels mysqldump wird die Datenbank ohne Daten und mit der Option ‘–add-drop-table’ gedumped. Mit grep werden dann nur diese Anweisungen wieder an den mysql Client weitergeleitet der dann wiederum die alle Tabellen aus der Datenbank dropt.

Nur bestimmte Tabellen einer Datenbank löschen

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:

1
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.

  • Digg
  • del.icio.us
  • DZone
  • MisterWong
  • Reddit
  • Slashdot
  • Technorati
  • Fark
  • Google Bookmarks
  • Facebook
  • MisterWong.DE
  • Twitter
  • Twitthis
  • Yahoo! Bookmarks
  • Yigg

No Responses to "How-To: Alle oder bestimmte Tabellen einer Datenbank löschen"

Comment Form


  • subbu: Hey, Thanks a lot. I was searching for something similar. Subbu
  • Maik: Habe jetzt für ein eigenes (schon ewig geplantes) Projekt auch mit dem ZF(version 1.10) angefangen und das tutorial hier hat trotzdem noch ganz gut g
  • Andreas: Auf jeden Fall eine gelungene Einführung, danke. Vielleicht gibt es ja 2010 den zweiten Teil ;)
  • Hartmut: Genau das Leserecht war bei mir das Problem. Danke.
  • admin: Hi! For more information go to http://extjs.com/ . There is a preview video of this Tool called Ext.De
  • jagocoding: nice info bro... where can i download this tools ?? can u give me ulr, this is free or not ?
  • admin: Of course! This should be rm -rf /tmp/*
  • Christian: rm -rf /tmp* bad idea. at least do rm -rf /tmp/* but if things go worse it will skrew your X Session
  • Aleksandr: Hi! Thank you, it really works, you could even do it in one line like here: http://www.devhands.com/2010/01/how-to-get-the-full-path-from-the-running
  • matt: thanks for the tip. freeing up the distfiles freed me up 5GB of diskspace. My root is only 20GB which I thought should be plenty but my disk hit 100