Answers:
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表仅对当前会话可见,并且在关闭会话时会自动将其删除。这意味着两个不同的会话可以使用相同的临时表名称,而不会彼此冲突或与现有的具有相同名称的非TEMPORARY表冲突。(在删除临时表之前,现有表一直处于隐藏状态。)要创建临时表,您必须具有CREATE TEMPORARY TABLES特权。
create table t as select ... limit 0; alter table t engine=memory; insert into t select ...
。或者,也许您可以更改“新表的默认引擎”。我想这可以在会话级变量中完成。更好的是,使用右上角的“问问题”按钮。
CREATE TEMPORARY TABLE IF NOT EXISTS table2 LIKE table1
如果您不想复制数据,只需使用结构即可使用它
除了psparrow的答案之外,如果您需要在临时表中添加索引,请执行以下操作:
CREATE TEMPORARY TABLE IF NOT EXISTS
temp_table ( INDEX(col_2) )
ENGINE=MyISAM
AS (
SELECT col_1, coll_2, coll_3
FROM mytable
)
它也可以与 PRIMARY KEY
CREATE TEMPORARY TABLE IF NOT EXISTS to_table_name AS (SELECT * FROM from_table_name)
temporary
如此create temporary table mytable as select ...
。