将单个列的所有行从一个表更新到另一个数据库中的同一个表

时间:2014-05-15 20:34:27

标签: mysql sql database

好的,我的测试环境中有一个名为' Food'的数据库。在这个数据库中,有一个名为' recipe'的表,其中有一个名为' source'的列。

我的本​​地环境中存在同一个数据库。但是,我刚收到一个更新的数据库(在我的本地环境中),其中所有列值(对于' source')都已更改。

我有什么方法可以迁移这些来源'从我的本地到我的测试环境的列,而不更改任何其他列的值? ' Food'中有1186行。数据库'配方'我的测试环境中的表格只需要使用“来源”进行更新。柱。

2 个答案:

答案 0 :(得分:0)

您需要一些方法来唯一识别您的食谱。如果两个表都有一个保持不变的代理键,请使用它。否则找出一些方法来匹配新数据和测试数据:您可能已经考虑了唯一的索引,或者您可能需要决定唯一标识您的食谱的字段组合。

另外,为什么不能覆盖所有列?这只是测试数据,对吧?

答案 1 :(得分:0)

如果只有一列已更改且您的行上有ID(或键),则可以按以下步骤操作:

  • 在本地创建一个中间表
  • 在那里插入密钥和新的源值(已更改的或全部)
  • 使用mysqldump从本地数据库中选择性地导出表格
  • 将转储的表复制到远程数据库服务器
  • 将其导入
  • 将其与更新语句中的生产表连接以替换值
  • 删除服务器上的中间表