gpt4 book ai didi

mysql - 如何在 MySQL 中自动合并两个不同的模式?

转载 作者:搜寻专家 更新时间:2023-10-30 20:54:21 24 4
gpt4 key购买 nike

我在生产环境中有一个 MySQL 数据库(我将其称为 db1),其中已经包含大量数据。

在开发中,我对其结构进行了多项更改并添加了用于测试目的的数据。我将其称为 db2。

我需要将 db2 的模式合并到 db1 中,而不丢失任何 db1 的数据,也不需要从 db2 复制数据。

有什么方法可以自动(使用脚本、程序或某些 Workbench 的内置功能)?

最佳答案

  1. 使用 mysqldump --no-data 转储不需要数据的模式
  2. 将转储加载到新数据库中。
  3. 使用动态 SQL 创建一个存储过程,并将游标置于信息 schema.tables 上。基本上,对于属于原始数据库的每个表,构建一个 INSERT ... SELECT 查询,将数据插入到新数据库中。请注意,如果要防止在复制数据时修改数据,则可能需要使用 LOCK TABLES 语句锁定整个数据库。您也可以使用动态 SQL 构造 LOCK TABLES 语句。
  4. 完成。

如果第 3 步看起来很复杂,您可以手动插入...选择数据。在 MySQL 中没有自动执行此操作的方法:取决于您对原始模式所做的更改,例如添加列/索引/更改字段类型,可能需要不同的 INSERT...SELECT 查询。

关于mysql - 如何在 MySQL 中自动合并两个不同的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29548824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com