新旧DBは同じ構成だが、レコード値は異なる
sテーブル
・idカラム AUTO_INCREMENT
・c_idカラム
・hogeカラム

rテーブル
・r_idカラム AUTO_INCREMENT
・s_idカラム
・hogeカラム


やりたいこと
旧DBにあるsテーブル及びrテーブルの一部を、新DBへINSERTしたい
※新DBにある既存データへ追加

作成したSQLのイメージ

INSERT INTO 新DB名.`s` (`id`,`hoge`) 
SELECT `id` ,`hoge`
FROM  旧DB名.`s`
WHERE `c_id` = 7


INSERT INTO 新DB名.`r` (`s_id`,`hoge`) 
SELECT `s_id`,`hoge`
FROM 旧DB.`r`
WHERE `s_id` in (SELECT id FROM s WHERE c_id = 7)

困っている点
rテーブルのs_idカラムは、sテーブルのidカラムに紐付いているが、複数行INSERTすることで、sテーブルのidカラムの値が(AUTO_INCREMENTだから)変わってしまうので両者の関係性が壊れてしまう

  • 案1.INSERT した 新DBのidを全部取得して、それをどうにかしてSQLへ組み込む
  • 案2.INSERT する際、AUTO_INCREMENT値をどうにかして変えないようにする
  • 案3.複数行の一括処理は諦めて、1件1件どうにかする

その他の案は何かありますか?