这是一个非常简化的图形情况: 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 = 14
和 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));
最佳答案
试试这个:
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'
关于MySQL:将数据从 OldDB 普通表迁移到多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12579635/