【MySQL】テーブルのデータをコピーして別のテーブルに挿入する方法

今回も、昨日に引き続き MySQL について。
タイトルにある通り、テーブルのデータをコピーして別のテーブルにデータを挿入する方法です。
使用頻度はあまり高くないかな?

 

今回参考にさせていただいたサイトはこちらから。

表をSELECTして別の表へINSERTする(INSERT ~ SELECT)- SQL Server – Priject Group
https://www.projectgroup.info/tips/SQLServer/SQL/SQL000004.html

なお参考として、記事の下の方に、同じことを Oracle Database で行う方法が書かれたページへのリンクもあります。

で、SQL文はこちら。

INSERT INTO [データ挿入先テーブル名] SELECT * FROM [コピー元テーブル名];

こちらは全カラム&全件をコピーする方法です。
もちろん、SELECT に WHERE をしてして、任意の条件に一致するデータのみを挿入することもできます。
なお、このSQL文はコピー元テーブルとコピー先テーブルの構造が一致していないと失敗するので、注意が必要です。

ですが、下記のように取得するカラムも指定すれば、定義の異なるテーブルにも挿入できます。

INSERT INTO [コピー先テーブル]([カラム1], [カラム2]) SELECT [カラム1], [カラム2] FROM [コピー元テーブル];

なお、カラムを指定するときは、順番にも気を付けてください。

 

以上、テーブルのデータをコピーして、別のテーブルに挿入する方法でした。
INSERT と SELECT が同時に使用されているので、一見難しそうに見えますが、落ち着いてみてみればかなり簡単ですね。
なお、実際に実行する機会があるかどうかは別として、同じテーブルにコピーしたデータを挿入することもできたので、テストデータとかを量産したいときとかに便利そうですね。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG