sqlite如何迁移到mysql脚本
这篇文章主要介绍了sqlite如何迁移到mysql脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
,具体代码如下所示:
#!/usr/bin/perl##basedonhttps://stackoverflow.com/a/87531/5742651#usage:sqlite3.dumpdatabase_name.sqlite3|perlsqlite2mysql.pl|mysql-uroot-p$import_database_name##ignorefollowlines:#BEGINTRANSACTION#COMMIT#sqlite_sequence#CREATEUNIQUEINDEX#PRAGMAforeign_keys=OFF#"tablename/field"=>`tablename/field`#booleans't'and'f'=>1and0#AUTOINCREMENT=>AUTO_INCREMENT#varchar=>varchar(255)#CREATETABLEtable...=>DROPTABLEtable;CREATETABLEtable...#Mergeinsertsqlsintomultipleinserttospeedup#INSERTINTOtableVALUES('val1');#INSERTINTOtableVALUES('val2');=>INSERTINTOtableVALUES('val1'),('val2'),('val3');#INSERTINTOtableVALUES('val3');my$open=0;my$line_cache='';#Forspeedupprint"SETGLOBALmax_allowed_packet=209715200;\n";#print"SETAUTOCOMMIT=0;\n";while($line=<>){if(($line!~/PRAGMAforeign_keys=OFF/)&&($line!~/BEGINTRANSACTION/)&&($line!~/COMMIT/)&&($line!~/sqlite_sequence/)&&($line!~/CREATEUNIQUEINDEX/)){if($line=~/CREATETABLE\"([a-z_0-9]*)\"(.*)/){$name="\`$1\`";$sub=$2;$sub=~s/varchar([^(])/varchar(255)$1/g;$line="DROPTABLEIFEXISTS$name;\nCREATETABLE$name$sub\n";}elsif($line=~/CREATEVIEW([a-z_0-9]*)(.*)/){$name="\`$1\`";$sub=$2;$line="DROPVIEWIFEXISTS$name;\nCREATEVIEW$name$sub\n";}elsif($line=~/INSERTINTO\"([a-z_]*)\"VALUES(.*);/){if($open==0){$open=1;$line_cache.="INSERTINTO\`$1\`VALUES$2";}else{$line_cache.=",$2";}next;}else{$line=~s/\'\'/\\\'/g;}if($open==1){$open=0;$line=$line_cache.";\n".$line;$line_cache='';}$line=~s/\"/`/g;$line=~s/([^\\'])\'t\'(.)/$1THIS_IS_TRUE$2/g;$line=~s/THIS_IS_TRUE/1/g;$line=~s/([^\\'])\'f\'(.)/$1THIS_IS_FALSE$2/g;$line=~s/THIS_IS_FALSE/0/g;$line=~s/AUTOINCREMENT/AUTO_INCREMENT/g;print$line;}}#print"SETAUTOCOMMIT=1;\n";
感谢你能够认真阅读完这篇文章,希望小编分享的“sqlite如何迁移到mysql脚本”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。