sql >> データベース >  >> RDS >> Mysql

'mysqldump'を使用してすべてのテーブルをCSV形式でダンプします

    まず、1つの答えをお伝えします テーブル:

    これらすべてのINTO OUTFILEの問題 または--tab=tmpfile (および-T/path/to/directory )答えは、 mysqldumpを実行する必要があるということです 同じサーバー上 MySQLサーバーとして、それらのアクセス権を持っています。

    私の解決策は、単にmysqlを使用することでした ( mysqldump-Bを使用 パラメータ、SELECTステートメントを-eでインライン化します 、次にsedでASCII出力をマッサージします 、ヘッダーフィールド行を含むCSVで終了します:

    例:

     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"、 "password"、 "folder"、 "email" "8"、 "mariana"、 "xxxxxxxxxx"、 "mariana"、 "" "3"、 "squaredesign"、 "xxxxxxxxxxxxxxxxx"、 " squaredesign "、" [email protected] "" 4 "、" miedziak "、" xxxxxxxxxx "、" miedziak "、" example @ sqldat .com "" 5 "、" Sarko "、" xxxxxxxxx "、" Sarko "、" "" 6 "、" LogitransPoland "、" xxxxxxxxxxxxxx "、" LogitransPoland "、" "" 7 "、" Amos "、" xxxxxxxxxxxxxxxxxxxx "、" Amos "、" "" 9 "、" Annabelle "、" xxxxxxxxxxxxxxxx "、" Annabelle "、" "" 11 "、" Brandfathers andSons "、" xxxxxxxxxxxxxxxxx "、" BrandfathersAndSons "、" "" 12 "、" ImagineGroup "、 "xxxxxxxxxxxxxxxx"、 "ImagineGroup"、 "" "13"、 "EduSquare.pl"、 "xxxxxxxxxxxxxxxxx"、 "EduSquare.pl"、 "" "101"、 "tmp"、 "xxxxxxxxxxxxxxxxxxxxx"、 "_"、 " example@sqldat。 "

    > outfile.csvを追加します そのワンライナーの最後に、そのテーブルのCSVファイルを取得します。

    次に、すべてのリストを取得します

    であなたのテーブル
    mysql -u username -ppassword dbname -sN -e "SHOW TABLES;"
    

    そこから、たとえばBashシェルでループを作成して、これらのテーブルを反復処理するのは、あと1つのステップです。

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

    doの間 および; done 上記のパート1で書いた長いコマンドを挿入しますが、テーブル名を$tbに置き換えます 代わりに。



    1. setterの呼び出し中にHibernate例外IllegalArgumentExceptionが発生した原因を解決するにはどうすればよいですか?

    2. Postgresの大文字と小文字の区別

    3. PostgreSQL 9.0でデータベース作成時間を取得するにはどうすればよいですか?

    4. データを失うことなくSQLデータベースの列データ型を変更する方法