共计 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 问一下细节
正文完