【テーブルの移行】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_usersCode 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