linux下数据库切换过程记录:sqlite3 -> mysql

1、sqlite导出:注意按照表之间的依赖顺序导出

.output someDir/myDB.sql
.dump table1
.dump table2
.dump table3

 

2、处理.sql兼容性

参照脚本:https://github.com/athlite/sqlite3-to-mysql

(1)执行sqlite3-to-mysql sourceDri/myDB.sql > targetDir/myDB.sql

(2)手动修改 targetDir/myDB.sql

a) 因大小写不敏感可能导致表有数据丢失:在table的目标字段后添加CHARACTER SET utf8 COLLATE utf8_bin
b) 针对schema、sql、limit、offset等可能为保留字的字段,需要用`引号包裹: `XXX` 
c)  sqlite中定义为INTEGET NOT NULL的主键会被默认为自增长,但在mysql中需要手动加上 AUTO_INCREMENT
 
3、mysql导入
 
create database dbName CHARACTER SET utf8;
use dbName;
SET FOREIGN_KEY_CHECKS = 0;
source XXX/myDB.sql;
SET FOREIGN_KEY_CHECKS = 1;

转载于:https://www.cnblogs.com/jessicaDuan/p/7685587.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值