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

mysqlダンプSQLファイルをsqlite3dbにインポートできる形式に変換するスクリプト

    このシェルスクリプトはあなたを助けます

    #!/bin/sh
    if [ "x$1" == "x" ]; then
       echo "Usage: $0 <dumpname>"
       exit
    fi
    cat $1 |
    grep -v ' KEY "' |
    grep -v ' UNIQUE KEY "' |
    grep -v ' PRIMARY KEY ' |
    sed '/^SET/d' |
    sed 's/ unsigned / /g' |
    sed 's/ auto_increment/ primary key autoincrement/g' |
    sed 's/ smallint([0-9]*) / integer /g' |
    sed 's/ tinyint([0-9]*) / integer /g' |
    sed 's/ int([0-9]*) / integer /g' |
    sed 's/ character set [^ ]* / /g' |
    sed 's/ enum([^)]*) / varchar(255) /g' |
    sed 's/ on update [^,]*//g' |
    perl -e 'local $/;$_=<>;s/,\n\)/\n\)/gs;print "begin;\n";print;print "commit;\n"' |
    perl -pe '
      if (/^(INSERT.+?)\(/) {
         $a=$1;
         s/\\'\''/'\'\''/g;
         s/\\n/\n/g;
         s/\),\(/\);\n$a\(/g;
      }
      ' > $1.sql
    cat $1.sql | sqlite3 $1.db > $1.err
    ERRORS=`cat $1.err | wc -l`
    if [ $ERRORS == 0 ]; then
      echo "Conversion completed without error. Output file: $1.db"
      rm $1.sql
      rm $1.err
        rm tmp
    else
       echo "There were errors during conversion.  Please review $1.err and $1.sql for details."
    fi
    


    1. 自動インクリメントの開始番号を変更しますか?

    2. SQL Server Management Studio(SSMS)を使用したデータベース設計の概念パート1

    3. ClusterControl1.5の発表-自動バックアップ検証とクラウドアップロードを搭載

    4. エラー、文字列、またはバイナリデータは、挿入しようとすると切り捨てられます