登录
首页 >  数据库 >  MySQL

SQLite 到 MySQL 的数据库导入流程

来源:SegmentFault

时间:2023-02-18 11:07:22 426浏览 收藏

积累知识,胜过积蓄金银!毕竟在##column_title##开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《SQLite 到 MySQL 的数据库导入流程》,就带大家讲解一下MySQL、SQLite、sqlite3知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

手头有一个小项目,线上是 SQLite 数据库,本地开发环境为了管理方便用的是 MySQL 数据库。有时为了验证线上的一些数据问题,想要把线上的数据同步到本地来,然后导入到 MySQL 中。本来以为很简单的事情,实际还是花了些时间。

完整的过程主要分三步:

1. 下载线上的 SQLite 数据库到本地,并导出为 SQL 文件

这一步很简单,用

scp
命令可以解决文件的下载。导出成 SQL 文件也只需要使用下面的命令:

sqlite3 database.sqlite .dump > sqlite_dump.sql

database.sqlite
是下载的 SQLite 数据库名称,
sqlite_dump.sql
就是导出后的 SQL 格式数据文件。

2. 转换 SQL 文件内容

SQLite 导出的 SQL 文件是无法直接在 MySQL 中使用的,需要对一些差异的语法进行转换。主要的差异点如下:

  • SQLite 有一些语句是 MySQL 不支持的,比如
    BEGIN TRANSACTION
    ,
    COMMIT
    ,
    sqlite_sequence
  • SQLite 建表的一些语句和 MySQL 不兼容。比如
    varchar not null
    ,这种在 MySQL 中执行会报错。
  • SQLite 创建数据表用的是双引号:
    ""
    ,但 MySQL 用的是上引号:
    `
    `。
  • SQLite 的索引创建语句中,表名和字段都是使用的双引号,跟上面一条类似,需要换成上引号。
  • SQLite 使用
    t
    f
    表达布尔值, MySQL 用的是
    1
    0
  • SQLite 自增属性关键词是
    AUTOINCREMENT
    , MySQL 是
    AUTO_INCREMENT

转换这一步就是最耗时的了,网上搜了几个现成的转化代码,结果转换后都无法直接使用。只能自己一个一个的解决。

3. 导入 MySQL

通过第二步的转换后,就可以直接用

mysql
命令来导入 SQL 数据了。命令格式如下:

mysql -uroot -p123456 db_name 

db_name
就是要在 MySQL 中要导入的数据表名称。

以上就是《SQLite 到 MySQL 的数据库导入流程》的详细内容,更多关于mysql的资料请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表