设为首页 收藏本站
查看: 1106|回复: 0

[经验分享] 将Mysql转为Sqlite(原理加工具实现)

[复制链接]

尚未签到

发表于 2015-6-23 14:09:16 | 显示全部楼层 |阅读模式
SQLite向MySQL的数据库迁移
EditionStateDateDescription1.0completed2010/03/04关于SQLite和MySQL的SQL语句兼容性步骤
  SQLite向MySQL的迁移(migration)分为3步:

  • 将数据库从SQLite导出。
  • 修改SQLite的.sql文件内容,使其兼容MySQL的sql语句格式。
  • 将数据导入MySQL。
1.SQLite导出
  可以使用各种工具导出库,我使用FireFox的SQLite的管理插件SQLite Manager。
  使用FireFox访问https://addons.mozilla.org/en-US/firefox/addon/5817并安装此插件,要求FireFox版本高于3.5。
  使用SQLite Manager插件打开数据库(.db .sqlite3)文件,选择导出。将整个库文件导出为.sql查询语句。
2.SQL语句兼容性修改
  为了保证SQL语句的兼容,需要将SQLite的特有的格式,修改为MySQL的格式。下面为我总结的一般规则(下面的方括号应被忽略):

  • 将 ["] 改为 [`] 也可以移除全部的 ["] ,但是如果有一些函数名作为字段名(e.g. regexp)时将会遇到错误 需要注意一些默认为 ["] ,其作用不在字段上的,不应被替换而应当被保留
  • 移除所有的 [BEGIN TRANSACTION] [COMMIT] 以及 任何包含 [sqlite_sequence] 的(整)行
  • 将所有 [autoincrement] 改为 [auto_increment]
  • 将所有 ['f'] 改为 ['0'] 并将所有 ['t'] 改为 ['1'] 这一项包含了[boolean DEFAULT 't'] 和 [boolean DEFAULT '1'] 的不同 以及 [boolean DEFAULT 'f'] 和 [boolean DEFAULT '0'] 的不同 以及 被插入表中的值 的两个数据库间的差异
  将修改完的文件保存。
3.MySQL的导入
  在MySQL中新建同名的空数据库,使用如phpmyadmin的导入库的功能,将.sql文件导入。至此数据迁移完毕。
  之后需要修改应用程序数据库链接的指向等。
  此方法已经过验证,工作良好。
  
  分隔符------------------------------------下面是工具实现-------------------------------


  整理硬盘时发现的,不知道是什么时侯丢在硬盘里的,看看文件的创建时间好象还是去年的,今天安装了一试,简直是一宝啊,因为它可以转换绝大多数类型的数据库,而且是可以相互转换。
  ESF Database Migration Toolkit Pro 支持的数据库格式:
  Oracle, MySQL, SQL Server, PostgreSQL, IBM DB2, Teradata, Access, Excel, Visual Foxpro, SQLite, InterBase/FireBird,Paradox, Lotus, dBase, Text/CSV 等等。
DSC0000.jpg

DSC0001.jpg

DSC0002.jpg

刚才随便试了试,从 Access 转换到 MySQL 没问题,而从MySQL转换到Access看似完成了,但转换来的Access数据库打开时会提示出错,不太正常。其它格式的数据库转换没试过,自己暂时用不到。如果你有这方面需要,可以试试这个强大的数据库转换工具。

  ESF Database Migration Toolkit Pro 6.2.25 (数据库转换迁移工具):
DSC0003.jpg 点此下载

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-79830-1-1.html 上篇帖子: Access、SQLite、HSQLDB、Sybase、MySQL、DB4O 下篇帖子: android开发 如何通过web服务器访问MYSQL数据库并且使其数据同步到android SQLite数据库?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表