【テーブルの移行】INSERT INTOを使って既存テーブルから別テーブルへ移行(insert)してみた。

はい、今回はテーブルの移行をやってみたいと思います。

あんまりSQLをしっかり使えるようになるためにも、記事を残していこうと思います~

SQLは大切なんでね。タイピングをするかのごとく使えるようになりたい。

解決したいこと

今回はデータベースを移行するということで、旧のデータベースから特定のテーブルを、新データベースに移行するっていうことをやっていきたいと思います。

旧テーブル→新テーブル

ってなイメージですね。

解決方法: INSERT INTOとSELECTを使って移行する

表をSELECTして別の表へINSERTする(INSERT ~ SELECT)を参考にやってみましょう!

今回は簡単なテーブルの移行を例にとってやってみますね。

oldデータベース: old_usersテーブル

idold_nameold_age
1mike28
2andy29
3chris24

newデータベース: new_usersテーブル

idname
1mike
2andy
3chris

こんな感じでold_userからnew_userテーブルに移行していきたいと思います!

そのSQLはこちら!!

INSERT INTO new.new_users(id, name) SELECT old_id, old_name FROM old.old_users
Code language: CSS (css)

SQL分の説明↓

INSERT INTO {新DB名}.{新テーブル名}({新カラム名}, {新カラム名}) SELECT {旧カラム名}, {旧カラム名} FROM {旧DB名}.{旧テーブル名}

先にINSERT INTOで新しいテーブル、カラムを指定します。

SELECTでどこから新テーブルに入れるものを持ってくるのかを指定します。

そうすることで、移行が成功します!!

よし!いい感じだ~

補足

もし、Laravel8のコードでやろうとしたらこんな感じになります。

DB::insert("insert into new.new_users(new_id, new_name) select old_id, old_name from old.old_users;");
Code language: CSS (css)

↑これは自分への備忘録w

まとめ

移行もうまくSQLを使いこなせば、機械的にできるから楽ちん!

SQLもしっかり勉強しないと!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA