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 使用
t
和f
表达布尔值, MySQL 用的是1
和0
。 - SQLite 自增属性关键词是
AUTOINCREMENT
, MySQL 是AUTO_INCREMENT
。
转换这一步就是最耗时的了,不过本人在做这个笔记时候,转化后的 sql 语句较少,没碰上上述不兼容语法,此处没有进行实验实践,故无法确定以上是否每个sqlite文件都是这样。
3. 导入 MySQL
通过第二步的转换后,就可以直接用 mysql
命令来导入 SQL 数据了。
直接在Navicat 上面进行转储运行即可。
首先先建立一个空的数据库,名称与sql文件相同,然后打开数据库
接着右键,运行 sql 文件即可。