sqlserver 迁移 mysql

迁移的方式可能有很多种,这边因为平时接触mysql比较少一点,先做两种方式,不管用哪种方式都是会有

点问题的,使用 navicat 工具(这种工具可以连接mysql,sqlserver,oracle,sqlite,mongodb,postgreSql等

等数据库)起先使用它是因为在写字段注释的时候比sqlserver 那个 studio 方便太多,其次界面好看,但是对

于sqlserver来讲有个问题就是建好表之后字段不支持上下移动切换顺序,其他数据库可以。

目标:将sqlserver数据库连表结构和数据一起导入mysql

方法一:用navicat连接好mysql,创建好数据库,然后打开数据库,《表》右键==>导入向导

 

 一直下一步到这里

 点击开始就行

缺点:主键注释以及自增值都会丢失

优点:可以设置遇到错误继续导入不中断

方法二:同样先创建好数据库

 工具 -> 数据传输

 

 左边是已创建好的源连接,右边是目标连接

缺点:自增值会丢失,遇到错误即刻中断导入,最典型的是当源数据里面带有emoji表情的时候,目标数据库字符集未设置为 utfmb4的时候,会随时中断

优点:主键注释都会保留下来

最后:给表设置自增

附上查询源数据库的自增语句辅助设置自增:

SELECT b.name TableName ,a.name ColumnName ,a.seed_value ,a.increment_value ,a.last_value FROM sys.identity_columns a INNER JOIN sys.tables b ON a.object_id = b.object_id

方法三:生成sql,然后把差异的语法批量替换一下,比如ms sql里面的 identity 对应mysql 的 auto_increment,

然后自增值这块语法差异太大,做起来还是麻烦的(不推荐使用这种方式,爱折腾可以试试)

原文地址:https://www.cnblogs.com/shellphen/p/13932905.html