sqlite如何迁移到mysql脚本

52次阅读
没有评论

共计 2020 个字符,预计需要花费 6 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章主要介绍了 sqlite 如何迁移到 mysql 脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。

,具体代码如下所示:

#! /usr/bin/perl
# based on https://stackoverflow.com/a/87531/5742651
# usage: sqlite3 .dump database_name.sqlite3 | perl sqlite2mysql.pl | mysql -u root -p $import_database_name
# ignore follow lines:
# BEGIN TRANSACTION 
# COMMIT 
# sqlite_sequence 
# CREATE UNIQUE INDEX
# PRAGMA foreign_keys=OFF
#  tablename/field  =  `tablename/field`
# booleans  t  and  f  =  1 and 0
# AUTOINCREMENT =  AUTO_INCREMENT
# varchar =  varchar(255)
# CREATE TABLE table... =  DROP TABLE table; CREATE TABLE table...
# Merge insert sqls into multiple insert to speed up
# INSERT INTO table VALUES( val1 
# INSERT INTO table VALUES(val2  =  INSERT INTO table VALUES( val1), (val2), ( val3 
# INSERT INTO table VALUES( val3 
my $open=0;
my $line_cache =  
# For speed up
print  SET GLOBAL max_allowed_packet=209715200;\n 
#print  SET AUTOCOMMIT=0;\n 
while ($line = ){ if (($line !~ /PRAGMA foreign_keys=OFF/)   ($line !~ /BEGIN TRANSACTION/)   ($line !~ /COMMIT/)   ($line !~ /sqlite_sequence/)   ($line !~ /CREATE UNIQUE INDEX/)){ if ($line =~ /CREATE TABLE \ ([a-z_0-9]*)\ (.*)/){
 $name =  \`$1\` 
 $sub = $2;
 $sub =~ s/varchar([^(])/varchar(255)$1/g;
 $line =  DROP TABLE IF EXISTS $name;\nCREATE TABLE $name$sub\n  
 }
 elsif ($line =~ /CREATE VIEW ([a-z_0-9]*)(.*)/){
 $name =  \`$1\` 
 $sub = $2;
 $line =  DROP VIEW IF EXISTS $name;\nCREATE VIEW $name$sub\n 
 }
 elsif ($line =~ /INSERT INTO \ ([a-z_]*)\  VALUES(.*);/){ if ($open == 0) {
 $open = 1;
 $line_cache .=  INSERT INTO \`$1\` VALUES $2 
 } else {
 $line_cache .=  , $2 
 }
 next;
 }else{
 $line =~ s/\ \ /\\\ 
 }
 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  SET AUTOCOMMIT=1;\n

感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“sqlite 如何迁移到 mysql 脚本”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计2020字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)