將 MySQL Dump SQL 轉換為 Sqlite3 DB
將 MySQL Dump SQL 轉換為 Sqlite3 DB將 MySQL Dump 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
#!/bin/sh # 用法:$0 如果[“x$1”==“x”];然後 echo "用法: $0 " 出口 菲 貓 $1 | grep -v ' KEY "' | | grep -v ' KEY "' | grep -v ' 唯一鍵 "' | grep -v '主鍵' | sed '/^SET/d' | sed '/^SET/d' | sed 's/ 無符號 / /g' | sed 's/ auto_increment/ 主鍵自動增量/g' | sed 's/smallint([0-9]*) / 整數 /g' | sed 's/tinyint([0-9]*) / 整數 /g' | sed 's/ int([0-9]*) / 整數 /g' | sed 's/ 字元集 [^ ]* / /g' | sed 's/ enum([^)]*) / varchar(255) /g' | sed 's/ enum([^)]*) / varchar(255) /g' | sed 's/ 更新 [^,]*//g' | perl -e 'local $/;$_=;s/,\n\)/\n\)/gs;印出「開始;\n」;印;印出「提交;\n」' | Perl-pe' 如果 (/^(插入。?)\(/) { $a=$1; s/\\'\''/'\'\''/g; s/\\n/\n/g; s/\),\(/\);\n$a\(/g; } ' > $1.sql 貓 $1.sql | sqlite3 $1.db > > $1.錯誤 錯誤=`cat $1.err |廁所-l` 如果 [ $ERRORS == 0 ];然後 echo“轉換完成,沒有錯誤。輸出檔:$1.db” rm $1.sql rm $1. 錯誤 rmtmp 別的 echo "轉換過程中發生錯誤。請查看 $1.err 和 $1.sql 以了解詳細資訊。" fi
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3