当前位置: 首页 > news >正文

如何将数据库从SQL Server迁移到MySQL

一、迁移Database Schema。

首先使用Sybase Powerdesigner的逆向工程功能,逆向出SQL Server数据库的物理模型。具体操作是在Powerdesigner中选择“File”,“Reverse Engine”再选择Database,将DBMS选择为SQL Server,如图:

clip_image001[11]

然后选择数据源,也就是要具体连接到的SQL Server数据库服务器,然后选择要逆向的数据库名,比如选中“WSS_Content_80”如图所示:

clip_image002[4]

单击确定即可生成物理模型图:

clip_image004[4]

然后单击“Database”菜单下的Change Current DBMS修改当前的DBMS,改为MySQL 5.0,

clip_image005[4]

单击确定后即可生成MySQL的物理模型 然后单击“Database”菜单下的“Generate Database”生成数据库脚本文件。

接下来是手工修改下生成的脚本的内容。

将其中的dbo.全部替换成空

将create user这样的语句删除掉。

如果有些字符在MySQL中是关键字,那么必须使用“`”(键盘上数字1左边那个符合)符合框起来。

加上MySQL所需要的存储引擎比如每个建表语句后跟上:

ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;

将生成的脚本在MySQL中去运行一次即可创建数据库。

二、迁移数据内容

数据内容只能通过生成INSERT语句的方式来做。

首先使用SSMS的“生成脚本”功能(在数据库上右键,选择“任务”“生成脚本”选项),可以为SQL Server数据库中的数据生成插入脚本。

首先选择要迁移数据的表,这里我们全选所有的表:

clip_image007[4]

然后单击下一步,选择将脚本保存到新的查询窗口:

clip_image009[4]

单击“高级”选项,在高级选项窗口中选择“要编写脚本的数据的类型”为仅限数据:

clip_image010[4]

然后“确定”再下一步下一步即可生成INSERT脚本文件。

修改生成的脚本文件,主要有以下几项修改:

使用批量替换的方式去掉[ ]这是SQL Server的符合,在MySQL中不用这个。

使用批量替换的方式去掉dbo.

有些单词在MySQL中是关键字的,那么需要使用“`”引起来。

关于Datetime类型的数据,需要手工修改下,SQL Server默认生成的是这样的语句,在MySQL中是没办法解析的:

CAST(0x00009EEF00000000 AS DateTime)

为每一行添加一个;表示一个插入语句结束。这个分号在SQL Server中可以不需要,但是在MySQL中是必须的。简单的方法是使用高级的文本编辑器(比如Notepad++),将\r\n替换为;\r\n即可。

相关文章:

  • 回溯算法
  • JS 弹出窗口(DZ论坛)
  • Linux 用epoll实现的简单http服务器
  • Oracle 10g在RHEL6上的另类安装方法
  • 易经读书笔记14火天大有
  • 《Applications=Code+Markup》读书札记(1)——一个简单的 WPF 程序
  • 剑指offer系列25:把数组排成最小的数
  • 分层网络模型
  • 解题报告 『 [USACO07JAN]Balanced Lineup(ST表)』
  • 刚出锅的菜,还热乎呢,要趁热吃哟!
  • 69期-Java SE-006_综合练习-001-002
  • vi/vim 基本使用方法
  • 《微软官方Windows 8设计指南》归纳整理
  • 空间数据库学习笔记(三):空间数据操作
  • H3C DCC的特点
  • Android 架构优化~MVP 架构改造
  • angular学习第一篇-----环境搭建
  • Centos6.8 使用rpm安装mysql5.7
  • Consul Config 使用Git做版本控制的实现
  • docker-consul
  • js学习笔记
  • PHP的类修饰符与访问修饰符
  • 初识 webpack
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 离散点最小(凸)包围边界查找
  • 利用DataURL技术在网页上显示图片
  • 我有几个粽子,和一个故事
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • #宝哥教你#查看jquery绑定的事件函数
  • #微信小程序(布局、渲染层基础知识)
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (转) Android中ViewStub组件使用
  • (转)关于多人操作数据的处理策略
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .Net 中Partitioner static与dynamic的性能对比
  • .net对接阿里云CSB服务
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET基础篇——反射的奥妙
  • ::
  • [BPU部署教程] 教你搞定YOLOV5部署 (版本: 6.2)
  • [BUAA软工]第一次博客作业---阅读《构建之法》
  • [C++提高编程](三):STL初识
  • [EULAR文摘] 利用蛋白组学技术开发一项蛋白评分用于预测TNFi疗效