1. ホーム
  2. mysql

[解決済み] CREATE TABLE を別途作成せずに SELECT 文で一時テーブルを作成する。

2022-03-19 20:05:45

質問

create tableステートメントを使用せず、各カラムのタイプを指定せずに、selectステートメントからテンポラリ(セッションのみ)テーブルを作成することは可能でしょうか?派生テーブルが可能なのは知っていますが、それらは超一時的(ステートメントのみ)なので、再利用したいのです。

テーブル作成コマンドを書き上げ、カラムリストとタイプリストを一致させておく必要がなければ、時間の節約になりますね。

どのように解決するのですか?

CREATE TEMPORARY TABLE IF NOT EXISTS table2 AS (SELECT * FROM table1)

にあるマニュアルから http://dev.mysql.com/doc/refman/5.7/en/create-table.html

<ブロッククオート

テーブルを作成する際に TEMPORARY キーワードを使用することができます。TEMPORARY テーブルは 現在のセッションからしか見えない であり、かつ 自動的に削除される は、セッションが終了したときに つまり、2つの異なるセッションが同じテンポラリテーブル名を使用しても、互いに競合したり、既存の同名の非テンポラリテーブルと競合したりすることはありません。(一時テーブルを作成するには、CREATE TEMPORARY TABLES権限を持っている必要があります。