MySQL ダンプ SQL を Sqlite3 DB に変換
MySQL ダンプ SQL ファイルを SQLite3 データベースにインポートするには、互換性を確保するために変換が必要です。
提供されているシェル スクリプトは、ダンプ ファイルを自動変換する方法を提供します:
#!/bin/sh
# Usage: $0
if [ "x$1" == "x" ]; then
echo "Usage: $0 "
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
;それから
echo "使用法: $0 "
出口
フィ
猫 $1 |
grep -v ' キー "' |
grep -v '一意のキー "' |
grep -v '主キー' |
sed '/^SET/d' |
sed 's/ unsigned / /g' |
sed 's/auto_increment/主キー autoincrement/g' |
sed 's/ smallint([0-9]*) / 整数 /g' |
sed 's/ tinyint([0-9]*) / 整数 /g' |
sed 's/ int([0-9]*) / 整数 /g' |
sed の/ 文字セット [^ ]* / /g' |
sed 's/ enum([^)]*) / varchar(255) /g' |
更新時の sed 's/ [^,]*//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
猫 $1.sql | sqlite3 $1.db > $1.err
エラー=`猫 $1.err |トイレ -l`
if [ $ERRORS == 0 ];それから
echo "変換はエラーなく完了しました。出力ファイル: $1.db"
rm $1.sql
rm $1.err
rmtmp
それ以外
echo "変換中にエラーが発生しました。詳細については、$1.err と $1.sql を確認してください。"
fiスクリプトは次の変換を実行します:免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3