プログラミング

[MySQL]レコードを別データベース・テーブルの特定の値で登録する

プログラミング
この記事は約2分で読めます。
スポンサーリンク

データ移行時に、旧データベースから新データベースへデータを移行する場合、単純にデータベース自体をコピーできれば良いんですが、テーブルやフィールドを変更していると単純なコピーではデータ移行できないことがあります。そういう場合、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が旧テーブルになります。

データベース名やテーブル名、フィールド名は適宜変更してクエリを実行してもらえればと思います。

最後に

データ移行時にテーブルやフィールドを整理することはよくあると思いますが、そうするとデータベースを単純にコピーすることができなくなります。そういう場合は今回のクエリを実行することで、旧データベースのテーブルのレコードを新データベースのテーブルへ移行することができるようになります。別データベースからレコードを登録することはあまりないかもしれませんが、いざという時役に立つので忘れないようにしたいですね。

スポンサーリンク
スポンサーリンク
KoEをフォローする
CodeLab

コメント

タイトルとURLをコピーしました