Heim >Datenbank >MySQL-Tutorial >Wie kann ich alle MySQL-Tabellen mit „mysql' und „sed' massenhaft in CSV-Dateien exportieren?

Wie kann ich alle MySQL-Tabellen mit „mysql' und „sed' massenhaft in CSV-Dateien exportieren?

DDD
DDDOriginal
2024-11-30 03:35:15320Durchsuche

How Can I Bulk Export All MySQL Tables to CSV Files Using `mysql` and `sed`?

Massen-CSV-Export mit „mysqldump“

Im Bereich der MySQL-Datenverwaltung kann der Export von Tabelleninhalten in das CSV-Format eine entscheidende Aufgabe sein . Obwohl „mysqldump“ ein leistungsstarkes Dienstprogramm für Datenbanksicherungen ist, fehlt die Option, jede Tabelle ausschließlich als CSV zu exportieren. In diesem Artikel wird ein alternativer Ansatz untersucht, um dies mithilfe einer Kombination aus „MySQL“ und Nachbearbeitung zu erreichen.

„MySQL“ mit „-B“-Parameter

Der Knackpunkt Unsere Lösung liegt in der Nutzung des Parameters „-B“ im Dienstprogramm „mysql“. Dieser Parameter weist das Programm an, Ergebnisse in einem tabulatorgetrennten Format anzuzeigen. Indem wir die Ausgabe über „sed“ weiterleiten, können wir die Daten weiter manipulieren, um eine CSV-Datei mit Headern zu erstellen.

Bash-Skript-Iteration

Um alle Tabellen in eine zu exportieren In einer Datenbank können wir ein Bash-Skript verwenden, um die Liste der Tabellennamen zu durchlaufen. Ein Ansatz besteht darin, die folgenden Befehle zu kombinieren:

mysql -u username -ppassword dbname -sN -e "SHOW TABLES;" | \
for tb in $(mysql -u username -ppassword dbname -sN -e "SHOW TABLES;"); do
    mysql -B -u username -p password database -h dbhost -e "SELECT * FROM $tb;" \
    | sed “s/”/\””/g;s/'/\'/;s/\t/\”,\”/g;s/^/\”/;s/$/\”/;s/\n//g” > "$tb.csv"
done

Dieses Skript ruft zunächst die Liste der Tabellen mit „SHOW TABLES“ ab und speichert sie in der Variablen „tb“. Anschließend wird jeder Tabellenname durchlaufen und eine „SELECT *“-Abfrage mit dem Parameter „-B“ ausgeführt. Die resultierende Ausgabe wird von „sed“ verarbeitet und in einer CSV-Datei gespeichert, die nach der Tabelle benannt ist.

Fazit

Durch die Kombination des Parameters „-B“ von „mysql ' und 'sed' Nachbearbeitung können wir alle Tabellen in einer MySQL-Datenbank effektiv in das CSV-Format exportieren. Dieser Ansatz umgeht die Einschränkungen von „mysqldump“ und bietet eine größere Flexibilität bei der Bearbeitung der Ausgabedaten.

Das obige ist der detaillierte Inhalt vonWie kann ich alle MySQL-Tabellen mit „mysql' und „sed' massenhaft in CSV-Dateien exportieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn