sqlite 转换成 MySQL 迁移及一键 sqlite 转 MySQL 软件

下列是我从网上搜集并做的一个整理,若有未提及地方请指出:

sqlite 转换成 MySQL 迁移及一键 sqlite 转 MySQL 软件

从 sqlite 数据库导入到 mysql 数据库实例

从 sqllite 中导出数据文件库 XX.sql 的文件。导入到 mysql 数据库中。

键入命令: source /smb/works/mysql.sql

出现很多如下的错误:

You have an error in your SQL syntax; check the manual thatcorresponds to your MariaDB server version for the right syntax to use near XXXXXXXXX

原因是 sqllite 与 mysql 语句有很大的区别:左边为 MYSQL、右边为 SQLite

1、启动事务

Mysql 为 start transaction

Sqlite 为 begin transaction

2、提交事务

Mysql 为 commit

Sqlite 为 commit transaction

因此需要移除所有的 [BEGIN TRANSACTION] [COMMIT] 以及 任何包含 [sqlite_sequence] 的 (整) 行

3 创建表

Mysql 的库名、表名、列明等都不需要使用[]

sqlite 所有的名称都需要增加[]

4、数据类型

sqlite 的数据类型 mysql 都支持。但是 sqlite 中定义了范围在 mysql 中导入会报错。只有 varchar 需要定义范围。

5、冲突解决

SQLite 的 ONCONFLICT 子句不是独立的 SQL 命令。这是一条可以出现在许多其他 SQL 命令中的非标准的子句。在 Mysql 中不支持。

6、引号

将 ["] 改为 [`]
也可以移除全部的 ["] ,但是如果有一些函数名作为字段名 (e.g. regexp) 时将会遇到错误
需要注意一些默认为 ["] ,其作用不在字段上的,不应被替换而应当被保留

7、将所有 [autoincrement] 改为 [auto_increment]

8、将所有 ['f'] 改为 ['0'] 并将所有 ['t'] 改为 ['1']
或者 ['False'] 改为 ['0'] 及 ['True'] 改为 ['1']

9、text 字段不能设置 unipue,需改为 varchar(255)

10、注意 sqlite 是不区分类型的,所以有些整形字段和 text 字段要修改配合 mysql。

11、默认设为 CURRENT_TIMESTAMP 的字段类型一定为 TIMESTAMP。另外还有其他可能不同的字段类型在导入 sql 报错时候可以百度解决

将修改完的 sql 文件保存,然后通过工具导入到 mysql 中即可。

参考原文:https://www.2cto.com/database/201604/501991.html

          https://blog.csdn.net/duomoke/article/details/48246229

当然最后来个最简单 sqlite 转 MySQL 方法,可以使用 sqliteToMysql 软件一键转换,只需要选择原 db 地址及目标 MySQL 地址即可,下载链接如下(有内购 不过可以免费试用):

链接:https://pan.baidu.com/s/18mEN4JfHffseYf9N3GCeyA 

提取码:9vv9

手机扫描二维码访问

本文标题:《sqlite 转换成 MySQL 迁移及一键 sqlite 转 MySQL 软件》作者:极四维博客
原文链接:https://cway.top/post/130.html
特别注明外均为原创,转载请注明。

分享到微信

扫描二维码

可在微信查看或分享至朋友圈。

相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年10月    »
123456
78910111213
14151617181920
21222324252627
28293031

搜索

控制面板

您好,欢迎到访网站!
  查看权限

最新留言

文章归档

  • 订阅本站的 RSS 2.0 新闻聚合