538

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

create table コマンドを作成して、列リストと型リストを一致させておく必要がなければ、時間を節約できます。

4

6 に答える 6

858
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 つの異なるセッションが、互いに競合したり、同じ名前の既存の非 TEMPORARY テーブルと競合したりすることなく、同じ一時テーブル名を使用できることを意味します。(一時テーブルが削除されるまで、既存のテーブルは非表示になります。) 一時テーブルを作成するには、CREATE TEMPORARY TABLES 権限が必要です。

于 2011-05-02T16:11:38.920 に答える
64

次の構文を使用します。

CREATE TEMPORARY TABLE t1 (select * from t2);
于 2012-12-06T21:55:48.517 に答える
57

選択する前にエンジンが必要です:

CREATE TEMPORARY TABLE temp1 ENGINE=MEMORY 
as (select * from table1)
于 2013-02-14T14:02:25.173 に答える
41

ENGINE=MEMORYBLOBテーブルに/TEXT列が含まれている場合はサポートされません

于 2013-02-23T17:36:02.887 に答える