2010-11-25 42 views
1

我有一个相当大的数据库,将经历一些大规模的模式更改。有很多新的实体和关系将被添加。坦率地说,现有模式没有足够的信息来生成使用基本的UPDATE和INSERT语句迁移数据所需的行和关系。在生产mysql数据库上执行复杂模式更新的最简单方法是什么?

什么是需要对现有的数据相当沉重分析MySQL数据库插入最简单的方式和更新记录?一种编程语言? Mysql的编程能力?

理想情况下,我想运行它与数据迁移代码的其余部分的脚本(变更表,创建表,等等),所以这一切都是为了在同一时间发生。但我并不是编写基于sql的程序最有经验的人 - 比如使用变量,函数,逻辑等。在我写这20年的应用程序中,我从来没有写过存储过程或基于sql的程序 - 特别是现在。

所以,我可能看一天如果我这样做2的工作只是为了迁移数据。

是否有另一种方法可行?或者正在深入研究几乎所需的SQL细节?

有什么建议吗?

这里是什么,我需要做的基本算法:

  • 找到一个老师(?随机的第一个ID)的所有老师表示每个教育机构
  • 找到所有允许模块为每个教育设施
  • 为每个允许的模块为代表教育设施的教师创建一个课程
  • 为每个活动模块(对模块提供教育设施),找到刚建立的课程上面和链接它以活动模块
  • 移除有源模块

回答

0

模块引用如果要迁移数据,并在同一时间更改架构,我会建议你创建一个新的数据库(与任何对架构更改你想),然后将数据迁移到没有修改原始数据库的数据;这也应该支持,以确保。

在这么大的更新出错,所以你总是想摆脱你的新数据库,修复翻译问题,创建一个新的空白数据库,然后再试一次。

我意识到你正在使用MySQL,但你是否也有权访问SQL Server?如果你确实可以使用SSIS来迁移数据(除非有人知道类似于SSIS的开源工具可以与MySQL一起使用吗?)

这是一个很好的工具,不需要大量的SQL语言知识尽管我会推荐你​​购买一本关于这个主题的书,但要让这些东西有用。我从来没有尝试到SSIS连接到MySQL,但我知道你可以使用ODBC,我发现这里的解释:Connecting to MySQL from SSIS

相关问题