SQLite3文件转化为SQL文件转储

SQLite3文件转化为SQL文件

1.将 .sqlite3文件保存下来,并导出为 .sql 文件

在导出之前,先确保安装了sqlite这个库

下载 sqlite

pip install sqlite

接下来这一步很简单

使用下面的命令,可以导出成 SQL 文件。:

sqlite3 database.sqlite .dump > sqlite_dump.sql

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

2. 转换 SQL 文件内容(即整理SQL文件)

删除开头如下两行,MySQL不支持这两行代码

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;

删除最后几个sqlite系统表的相关语句

这几个表是sqlite用来保存我们数据库的一些参数的,和数据库本身无关

ANALYZE sqlite_master;//以下到最后的所有语句

修改MySQL不兼容的语法

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

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

转换这一步就是最耗时的了,不过本人在做这个笔记时候,转化后的 sql 语句较少,没碰上上述不兼容语法,此处没有进行实验实践,故无法确定以上是否每个sqlite文件都是这样。

3. 导入 MySQL

通过第二步的转换后,就可以直接用 mysql 命令来导入 SQL 数据了。

直接在Navicat 上面进行转储运行即可。

首先先建立一个空的数据库,名称与sql文件相同,然后打开数据库请添加图片描述
接着右键,运行 sql 文件即可。

猜你喜欢

转载自blog.csdn.net/weixin_46064809/article/details/123832763