はい、今回はテーブルの移行をやってみたいと思います。
あんまりSQLをしっかり使えるようになるためにも、記事を残していこうと思います~
SQLは大切なんでね。タイピングをするかのごとく使えるようになりたい。
Table of Contents
解決したいこと
今回はデータベースを移行するということで、旧のデータベースから特定のテーブルを、新データベースに移行するっていうことをやっていきたいと思います。
旧テーブル→新テーブル
ってなイメージですね。
解決方法: INSERT INTOとSELECTを使って移行する
表をSELECTして別の表へINSERTする(INSERT ~ SELECT)を参考にやってみましょう!
今回は簡単なテーブルの移行を例にとってやってみますね。
oldデータベース: old_usersテーブル
id | old_name | old_age |
---|---|---|
1 | mike | 28 |
2 | andy | 29 |
3 | chris | 24 |
newデータベース: new_usersテーブル
id | name |
---|---|
1 | mike |
2 | andy |
3 | chris |
こんな感じで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もしっかり勉強しないと!