当前位置: 首页 > 面试题库 >

在没有单独的CREATE TABLE的SELECT语句中创建临时表

董子航
2023-03-14
问题内容

是否可以通过select语句创建一个临时(仅会话)表,而无需使用create
table语句并指定每个列类型?我知道派生表可以做到这一点,但是它们是超临时的(仅用于陈述),我想重用。

如果我不必编写create table命令并保持列列表和类型列表匹配,则可以节省时间。


问题答案:
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特权。



 类似资料:
  • 问题内容: 我创建结合两个表的SELECT语句,和的基础上,参照表,并在一个映射到。映射到未在数据库中的任何地方出现,我想创建“关于即时”的SELECT语句中。以下是我的架构: 这是一些示例数据: 我需要从输出表中获取给定设备每个区域的关联字段。每个映射到一个。对于此示例: 处理映射的一种方法是创建一个新表 并使用以下SQL获取设备1的所有区域以及标志: 但是,我正在寻找一种创建区域编号到输出类型

  • 问题内容: 如何在MySQL的select语句中创建并自动增加临时列? 这是我到目前为止的内容: 哪个返回: 但是我需要: 问题答案: 这将为您提供一个 连续的 行号。 结果

  • 问题内容: 如何与创建普通表类似地创建临时表? 例子: 问题答案: 临时表可以有3种,是最常用的。这是仅在当前会话中存在的临时表。与之等效的是声明的表变量。它具有较少的“功能”(如索引等),也仅用于当前会话。的是一个是一样的,但是,范围更广,因此您可以在同一会话中使用它,其他的存储过程中。 您可以通过多种方式创建临时表:

  • 问题内容: 我有3张桌子。团队,选项,选项团队。 团队拥有一个TeamId,名称 拥有Option拥有OptionId,OptionGroup OptionTeam拥有TeamId,OptionId,OptionGroup 我想获得一个团队列表,以及额外的列,这些列指示每个组有多少个选项连接到每个团队。这是通过上面的查询完成的,但是我想用表Option中的OptionGroup值替换4,5,6,1

  • 问题内容: 我总是发现很难编写MySQLi预备语句,因为许多函数的工作方式与旧方法不同。现在我面临一个问题。 问题答案: 您正在尝试通过以下方式获取结果 事实并非如此。因为execute将仅返回布尔值。 做喜欢的。

  • 问题内容: 我在应用程序中使用时遇到问题。 我正在应用程序的构造函数中创建。套接字的构造函数调用该方法以等待客户端连接。 问题在于该方法将冻结我的整个应用程序,直到客户端连接为止。因此,我想问一下是否有替代方法可以在单独的线程中创建整体,在我的主应用程序旁边调用的构造方法及其方法? 编辑: 感谢Olivier的建议,将.accept放入一个可运行的程序并创建一个线程池来处理客户端连接。 那就是我现