在项目开发中,有时由于项目开始时候使用的数据库是sql Server,后来把存储的数据库调整为MysqL,所以需要把sql Server的数据迁移到MysqL。下面是小编日常整理的一种sqlserver数据库迁移的方法。
一、sql Server中常用数据类型与MysqL不同的地方
二、将sql Server数据迁移到MysqL需要注意的一些问题
1、唯一索引的不同,sql server的唯一索引的字段只能允许存在一个null值,而MysqL,一直oracle中唯一索引对应的字段都允许存在多个null值。
2、存储过程的语法存在很大的不同,存储过程的迁移是最麻烦的,需要仔细修改。
1、使用 sqlyog 迁移
优点
该迁移方法很简单,灵活,迁移时,可以进行字段的修改,比如在sql server中原来是datetime,然后迁移到MysqL时你可以配置成timestamp;成功率很高;
缺点
迁移很慢!这是该方法最大的缺点,如果表的数据量达到几十万行,甚至几百万行,你会发现迁移起来真的很慢。明显比其他迁移方法慢很多。
2、使用 powerdesigner 和 sql server 的脚本导出功能 来迁移
(1)、该方法首先使用 powerdesigner,对sql server数据库,进行逆向工程,得到E-R图,然后生成MysqL的建表语句。完成数据库结构的迁移;当然表结构的迁移,不使用powerdesigner一样也是可以的。比如我将表结构导出成语句,然后手动进行修改,然后在MysqL中运行,也是一样的;
(2)、然后使用 sql server的工具 SSMS,将sql server数据库中的表的数据,导出成insert语句,每个表对应导出一个文件,然后对文件进行一些处理,然后导入到MysqL数据库中。
3、使用Oracle MysqL Server 官方的 workbeach 工具进行迁移
(1)、在workbench 连接sql server时,用户需要有 view any database 的权限。不然workbench无法访问sql server的表结构的元数据,从而无法进行迁移。