2012-04-04 5 views
1

Ist es möglich, einigen Text beim Exportieren eines mysql-Dumps allen Tabellen voranzustellen?Tabellennamen beim MySQL-Datenbankexport vorgeben

Zum Beispiel: Wenn die Tabelle chapters gestattet Ich möchte old_ es vorangestellt, so dass es old_chapters wird

+1

Können Sie nicht einfach eine Suche durchführen und auf der Dump-Datei ersetzen? – liquorvicar

+0

Der fragliche Dump enthält auch Inhalt und ist ziemlich groß (es stagniert die meisten Texteditoren). Auch die Begriffe existieren inhaltlich, was einen einfachen Ersatz recht trickreich macht. – kylex

+0

Wie wäre es mit dem Kopieren der relevanten Tabelle und dann ignorieren die ursprüngliche Tabelle in der Dump? – liquorvicar

Antwort

0

von der Komplexität Ihres Schemas Je können Sie in der Lage sein, dies zu tun mit einem sorgfältig ausgearbeitet sed-Befehl, findet alle Tabellenreferenzen und ergänzt die Tabellennamen mit "alt_".

Zum Beispiel wird dieser Befehl Ihr Schemas und Daten-Dump und den old_ Präfix zu dem Drop hinzufügen/table-Anweisungen sowie das Schloss erstellen/verändern Tabelle und fügen Sie Anweisungen:

mysqldump your_schema | sed -e 's/DROP TABLE IF EXISTS `/DROP TABLE IF EXISTS `old_/' -e 's/CREATE TABLE `/CREATE TABLE `old_/' -e 's/INSERT INTO `/INSERT INTO `old_/' -e 's/LOCK TABLES `/LOCK TABLES `old_/' -e 's/ALTER TABLE `/ALTER TABLE `old_/' 

jedoch, dass Kommando

  • Foreign Key Constraints
  • Ansichten
  • Tr: nicht das Tabellen-Präfix für eine der folgenden Arten von Tabellenverweise iggers
  • Gespeicherte Routinen