これは問題の非常に単純化されたグラフィカルな状況です:http: //i.stack.imgur.com/5NoRe.png
異なるスキーマに2つのDBがあります。古い黄色のDB(1つは単純でプレーンなテーブル)と新しい緑色のDB(上記のような関係があります)です。
問題は、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));