1

这是一个非常简化的图形情况:http: //i.stack.imgur.com/5NoRe.png

有两个不同模式的数据库,旧的黄色数据库(一个简单明了的表)和新的绿色数据库(有一些类似上面描述的关系)。

问题是我想将 OldDB 上的信息(超过 40k 行)迁移到 NewDB 中,并且我被这种关系转换所困扰。在 OldDB 中,每个中心都有不同的字段,取决于它们的 CHAR(1) = Y 还是 = N,它们是否处于某种操作之下。

现在在 NewDB 中,我们将这些中心放在另一个表中,它们有自己的 id,并且与主表 (b) 的多对多相关。

所以我想要的是遍历 Old.DB 中的每个中心(最多 20 个),当它变成例如center14 CHAR(1) = Y时,设置NewDB.center_has_b.center_id = 14and NewDB.center_has_b.b_id = OldDB.oldb.oldb_id

我是 MySQL 的新手,但我正在考虑做这样的事情,但没有运气:

INSERT NewDB.center_has_b (center_id, b_id) (N, (SELECT oldb_id from OldDB.oldb WHERE centerN = 1));
4

1 回答 1

0

试试这个:

INSERT NewDB.center_has_b (center_id, b_id)
 select 'N', oldb_id from OldDB.oldb WHERE centerN = 1

编辑:这是基于此答案的第一条评论

insert into center_has_b (center_id,b_id)
select c.enter_id ,old.b_id
from centers c
cross join old.b
where Allcenters = 'Y'
于 2012-09-25T09:13:47.043 回答