【MySQL】一時テーブルの作成やテーブルをコピーする方法


ここではMySQLで、一時テーブルの作成やテーブルをコピーする方法を紹介しています。

一時テーブルの作成

一時表はセッション終了時に保持しているデータが破棄されるテーブルになります。

処理の途中結果を一時的に格納しておく場合などに利用します。

一時表はセッション終了時に保持しているデータが破棄されるテーブルになります。

処理の途中結果を一時的に格納しておく場合などに利用します。

一時テーブルを作成するSQL

一時テーブルを作成するには、CREATE TEMPORARY TABLE文を使います。

CREATE TABLE [IF NOT EXISTS] TEMPORARY テーブル名(
    列名 データの型
    [,列名 データの型]
)
;

TEMPORARY句を付けること以外は通常のテーブルと同じ作り方になります。V

通常のテーブルの作成方法は↓で紹介していますので参考にしてください。
>>【MySQL】テーブルを作成・変更・削除するSQL

テーブルのコピー

テーブルをコピーするには、CREATE TABLE文を使います。

このときLIKE演算子を使うことで、表の構造、索引、主キーをそのままコピーすることが出来ます。

CREATE TABLE テーブル名 LIKE コピー元テーブル名;

コピーした直後、レコードは登録されていないので次のSQLを実行してデータをコピーします。

INSERT INTO テーブル名 SELECT * FROM コピー元テーブル名;

コピーテーブルに索引、主キー制約が不要な場合

表の索引や主キー制約が不要な場合はCREATE TABLE ~ AS SELECT文で簡単に表とレコードをコピーすることもできます。

CREATE TABLE テーブル名 AS SELECT * FROM コピー元テーブル名;