MySQL
のデータ移行時に、旧データベースから新データベースへデータを移行する場合、単純にデータベース自体をコピーできれば良いんですが、テーブルやフィールドを変更していると単純なコピーではデータ移行できないことがあります。そういう場合、 INSERT
文を利用して旧データベースから新データベースへデータを登録することでデータ移行することができます。
今回は別のデータベースへデータを登録する方法を説明したいと思います。
前提条件
- MySQL : 5.6
別データベースへレコードを登録する INSERT 文
下記のように INSERT
文を記述すれば別データベースへレコードを登録することができます。
INSERT INTO `new_db`.`new_table`(`id`, `field_a`, `field_b`, `field_c`)
SELECT `id`, `field_d`, `field_e`, `field_f` FROM `old_db`.`old_table`;
new_db
が新データベースで new_table
が新テーブル、 old_db
が旧データベース、 old_table
が旧テーブルになります。
データベース名やテーブル名、フィールド名は適宜変更してクエリを実行してもらえればと思います。
最後に
データ移行時にテーブルやフィールドを整理することはよくあると思いますが、そうするとデータベースを単純にコピーすることができなくなります。そういう場合は今回のクエリを実行することで、旧データベースのテーブルのレコードを新データベースのテーブルへ移行することができるようになります。別データベースからレコードを登録することはあまりないかもしれませんが、いざという時役に立つので忘れないようにしたいですね。
コメント