| 
27.08.2009
 | 
09:36

Teile eines MySQL-Dumps extrahieren

Es kommt immer mal wieder vor, dass ich bestimmte Tabellen aus einem MySQL-Dump extrahieren muss, um sie z.B. neu einzuspielen. Bei kleinen Datenbanken ist es kein Problem, die entsprechende Tabelle per Hand zu suchen. Wenn der Dump jedoch 1GB groß ist, geht ein Editor schon schnell mal in die Knie.

Die Lösung ist einfach: Mittels sed kann mal leicht Teile einer Textdatei extrahieren:

sed -n '/^INSERT INTO `start_tabelle`/,/^CREATE TABLE `end_tabelle`/p' dump.sql > extracted.sql

Hier werden die INSERT-Statements der Tabelle start_tabelle extrahiert und zwar bis zum Beginn von end_tabelle. Bei dieser handelt es sich um den nächsten Eintrag im Dump. Das Beispiel zeigt bereits die grundlegenden Ansätze, denke ich.

Will man nur die Inserts einer Tabelle extrahieren genügt folgender Ausdruck:

sed -n '/INSERT INTO `start_tabelle`/p' dump.sql > extracted.sql

Viel Spaß beim Probieren!

  •  
  • 1 Kommentare
  •  
Gravatar: NightflyNightfly
08.02.2010
18:28

Danke

Sehr nützlich!

Mein Kommentar
Ich möchte über jeden weiteren Kommentar benachrichtigt werden.

Zurück