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

在生产mysql数据库上进行复杂模式更新的最简单方法是什么?,sql,mysql,database,migration,Sql,Mysql,Database,Migration,我有一个相当大的数据库,它将经历一些大规模的模式更改。将添加许多新的实体和关系。坦率地说,现有模式没有足够的信息来生成使用基本UPDATE和INSERT语句迁移数据所需的行和关系 在需要对现有数据进行大量分析的mysql数据库中插入和更新记录的最简单方法是什么?编程语言?Mysql的编程能力 理想情况下,我希望将其作为脚本与其余的数据迁移代码(alter tables、create tables等)一起运行,以便所有这些都按顺序同时进行。但我在编写基于sql的程序方面不是最有经验的——比如使用变

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

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

理想情况下,我希望将其作为脚本与其余的数据迁移代码(alter tables、create tables等)一起运行,以便所有这些都按顺序同时进行。但我在编写基于sql的程序方面不是最有经验的——比如使用变量、函数、逻辑等。在我编写应用程序的20年中,我从来没有编写过存储过程或基于sql的程序——尤其是现在

所以,如果我这样做的话,我可能会花一两天的时间来迁移数据

还有其他可行的选择吗?还是说需要深入了解SQL的细节

有什么建议吗

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

  • 从所有教师中选出一名教师(随机?第一个id?)代表每个教育机构
  • 查找每个教育机构允许的所有模块
  • 为代表教育设施的教师的每个允许模块创建课程
  • 对于每个活动模块(有对教育设施模块的引用),查找上面刚刚创建的课程,并将其链接到活动模块
  • 从激活模块中删除模块参考

如果您同时迁移数据和更改模式,我建议您创建一个新数据库(对模式进行任何更改),然后将数据迁移到该数据库,而不修改原始数据库;当然,也应该对其进行备份

在如此大的更新中,会出现一些问题,因此您总是希望能够扔掉新数据库,修复翻译问题,创建一个新的空白数据库,然后重试

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

这是一个很好的工具,不需要大量的SQL语言知识就可以让事情顺利进行,尽管我建议你买一本关于这个主题的书。我从未尝试将SSIS连接到MySQL,但我知道您可以使用ODBC,我在这里找到了一个解释: