我正在尝试在我目前正在从事的项目中推广数据库版本控制系统 (http://code.google.com/p/flyway/) 的使用 - 并为此在我们对数据库进行更改时,我们通过一系列增量传播这些变化。目前还为时过早,所以我们有幸能够制作“破坏性”增量并在增量后重新填充数据库。我们已经接近需要能够使用生产数据重组数据库的地步,因此我希望能够理想地仅在 MySQL 中在数据库中移动数据。
例如 - 我想获取 TABLE_1 的列内容:the_value,在 TABLE_2 上创建列,然后将值从 TABLE_1 复制到 TABLE_2 WHERE id_org 和 id_club 匹配
TABLE 1
--------------------------------
| id_org | id_club | the_value |
--------------------------------
| 213 | 213 | 1 |
--------------------------------
| 214 | 213 | 2 |
--------------------------------
| 212 | 210 | 5 |
--------------------------------
-- intervening DDL that adds "the_value" to table 2
-- 2nd row on table 1 not copied across due to absence of matching id's
TABLE 2
--------------------------------------------
| id_org | id_club | foo | the_value |
--------------------------------------------
| 213 | 213 | bar | 1 |
--------------------------------------------
| 212 | 210 | bar | 5 |
--------------------------------------------
我以前使用过触发器的 FOR EACH ROW 构造,但在 MySQL 站点上找不到建议或演示如何使用它来迭代结果集以便将其复制到目标表的文档。这可能更多地反映了我无法找到适当的信息。
任何人都可以就此事向我提供任何指示吗?
假设表 2 已经存在 id_org、id_club 和 foo,只需创建“the_value”列并使用连接发出 UPDATE 调用
请参阅更新手册