将SQLite3迁移到MySQL的快速简便方法?

将SQLite3迁移到MySQL的快速简便方法?

有人知道将SQLite3数据库迁移到MySQL的快捷方法吗?



有只小跳蛙
浏览 1298回答 3
3回答

qq_花开花谢_0

每个人似乎从一些greps和perl表达式开始,你有点得到一些适用于你的特定数据集的东西,但你不知道它是否正确导入数据。我很惊讶没有人建立一个可以在两者之间转换的可靠库。这里列出了我在两种文件格式之间所知的SQL语法的所有差异:以以下列开头的行:开始交易承诺sqlite_sequence创建独特的索引在MySQL中没有使用SQLlite使用CREATE TABLE/INSERT INTO "table_name"和MySQL使用CREATE TABLE/INSERT INTO table_nameMySQL不在架构定义中使用引号MySQL在INSERT INTO子句中使用单引号作为字符串SQLlite和MySQL有不同的方法来转义INSERT INTO子句中的字符串SQLlite使用't'和'f'用于布尔值,MySQL使用1和0(当你有一个字符串时,一个简单的正则表达式可能会失败:'我做,你不在你的内部INSERT INTO)SQLLite使用AUTOINCREMENT,MySQL使用AUTO_INCREMENT这是一个非常基本的被破解的perl脚本,它适用于我的数据集,并检查我在网上找到的其他perl脚本的更多这些条件。Nu保证它会为您的数据工作,但可以随时修改并回复此处。#!&nbsp;/usr/bin/perlwhile&nbsp;($line&nbsp;=&nbsp;<>){ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(($line&nbsp;!~&nbsp;&nbsp;/BEGIN&nbsp;TRANSACTION/)&nbsp;&&&nbsp;($line&nbsp;!~&nbsp;/COMMIT/)&nbsp;&&&nbsp;($line&nbsp;!~&nbsp;/sqlite_sequence/)&nbsp;&&&nbsp;($line&nbsp;!~&nbsp;/CREATE&nbsp;UNIQUE&nbsp;INDEX/)){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($line&nbsp;=~&nbsp;/CREATE&nbsp;TABLE&nbsp;\"([a-z_]*)\"(.*)/){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$name&nbsp;=&nbsp;$1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sub&nbsp;=&nbsp;$2; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sub&nbsp;=~&nbsp;s/\"//g; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$line&nbsp;=&nbsp;"DROP&nbsp;TABLE&nbsp;IF&nbsp;EXISTS&nbsp;$name;\nCREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;$name$sub\n"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif&nbsp;($line&nbsp;=~&nbsp;/INSERT&nbsp;INTO&nbsp;\"([a-z_]*)\"(.*)/){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$line&nbsp;=&nbsp;"INSERT&nbsp;INTO&nbsp;$1$2\n"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$line&nbsp;=~&nbsp;s/\"/\\\"/g; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$line&nbsp;=~&nbsp;s/\"/\'/g; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$line&nbsp;=~&nbsp;s/\'\'/\\\'/g; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$line&nbsp;=~&nbsp;s/([^\\'])\'t\'(.)/$1THIS_IS_TRUE$2/g; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$line&nbsp;=~&nbsp;s/THIS_IS_TRUE/1/g; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$line&nbsp;=~&nbsp;s/([^\\'])\'f\'(.)/$1THIS_IS_FALSE$2/g; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$line&nbsp;=~&nbsp;s/THIS_IS_FALSE/0/g; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$line&nbsp;=~&nbsp;s/AUTOINCREMENT/AUTO_INCREMENT/g; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;$line; &nbsp;&nbsp;&nbsp;&nbsp;}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL