在生产mysql数据库上进行复杂模式更新的最简单方法是什么?

时间:2010-11-25 05:05:28

标签: sql mysql database migration

我有一个相当大的数据库,会经历一些大规模的架构更改。将添加许多新实体和关系。坦率地说,现有模式没有足够的信息来生成使用基本UPDATE和INSERT语句迁移数据所需的行和关系。

在mysql数据库中插入和更新记录的最简单方法是什么,需要对现有数据进行大量分析?一种编程语言? Mysql的编程能力?

理想情况下,我想将其作为脚本运行,其余的数据迁移代码(更改表,创建表等),所以这一切都按顺序同时发生。但我在编写基于sql的程序方面并不是最有经验的 - 比如使用变量,函数,逻辑等。在我编写应用程序的20年中,我从不编写存储过程或基于sql的程序 - 尤其是现在。

所以,如果我这样做的话,我可能只是在寻找一天或两天的工作来迁移数据。

还有其他选择吗?或者是否非常需要深入了解SQL的细节?

有什么建议吗?

以下是我需要做的基本算法:

  • 在代表每个教育机构的所有教师中找到一位老师(随机?第一个ID?)
  • 找到每个教育机构允许的所有模块
  • 为代表教育机构的教师创建每个允许模块的课程
  • 为每个活动模块(引用模块和教育机构),找到上面刚创建的课程并将其链接到活动模块
  • 从活动模块中删除模块引用

1 个答案:

答案 0 :(得分:0)

如果您正在迁移数据并同时更改架构,我建议您创建一个新数据库(对所需的架构进行任何更改),然后将数据迁移到该数据而不修改原始数据库;这也应该备份,只是为了确定。

在如此大的更新中,某些出错,因此您总是希望能够丢弃新数据库,解决转换问题,创建新的空白数据库并重试。< / p>

我意识到你在MySQL工作但是你也可以访问SQL Server吗?如果你这样做,你可以使用SSIS来迁移数据(除非其他人知道类似于可以与MySQL一起使用的SSIS的开源工具?)

这是一个很好的工具,虽然我建议你买一本关于这个主题的书,但是不需要大量的SQL语言知识才能让事情有效。我从来没有尝试过将SSIS连接到MySQL,但我知道你可以使用ODBC,我在这里找到了一个解释:Connecting to MySQL from SSIS