sql >> Databáze >  >> RDS >> Mysql

Vypsat všechny tabulky ve formátu CSV pomocí 'mysqldump'

Nejprve vám mohu dát odpověď na jednu tabulka:

Problém se všemi těmito INTO OUTFILE nebo --tab=tmpfile (a -T/path/to/directory ) odpovídá, že vyžaduje spuštění mysqldump na stejném serveru jako server MySQL a má tato přístupová práva.

Moje řešení bylo jednoduše použít mysql (ne mysqldump ) pomocí -B vložte příkaz SELECT s -e a poté masírujte výstup ASCII pomocí sed a ukončete soubor CSV včetně řádku pole záhlaví:

Příklad:

 mysql -B -u username -p password database -h dbhost -e "SELECT * FROM accounts;" \
 | sed "s/\"/\"\"/g;s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g"

"id", "login","heslo","složka","e-mail""8","mariana","xxxxxxxxxx","mariana","""3","squaredesign","xxxxxxxxxxxxxxxxx","," squaredesign","lexdatqamplecom. ""4","miedziak","xxxxxxxxxx","miedziak","qqq .com ""5","Sarko","xxxxxxxxx","Sarko","""6","LogitransPoland","xxxxxxxxxxxxxx","LogitransPoland","""7","Amos","xxxxxxxxxxxxxxxxxxxx","," Amos","""9","Annabelle","xxxxxxxxxxxxxxx","Annabelle","""11","Brandfathers andSons","xxxxxxxxxxxxxxxxx","BrandfathersAndSons","""12","ImagineGroup", "xxxxxxxxxxxxxxxx","ImagineGroup","""13","EduSquare.pl","xxxxxxxxxxxxxxxxx","EduSquare.pl","""101","tmp","xxxxxxxxxxxxxxx","xxxxxxxxxxxxxxx","xxxxxxxxxxxxxxxx" af href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f0a7bfb2b3ddc1c4de83818591829594958399979ede91849c918383999199ede."

Přidejte > outfile.csv na konci tohoto jednořádkového řádku, abyste získali soubor CSV pro tuto tabulku.

Dále získejte seznam všech vaše stoly s

mysql -u username -ppassword dbname -sN -e "SHOW TABLES;"

Odtud je už jen jeden další krok k vytvoření smyčky, například v prostředí Bash pro iteraci těchto tabulek:

 for tb in $(mysql -u username -ppassword dbname -sN -e "SHOW TABLES;"); do
     echo .....;
 done

Mezi do a ; done vložte dlouhý příkaz, který jsem napsal v části 1 výše, ale nahraďte název tabulky řetězcem $tb místo toho.



  1. Měsíce mezi dvěma daty

  2. OBJEDNAT PODLE data a času PŘED GROUP BY name v mysql

  3. Jak vrátit seznam typů dat v SQL Server (T-SQL)

  4. Vložit data do SQL Server 2017