Create a temporary table in a SELECT statement without a separate CREATE TABLE(在没有单独的 CREATE TABLE 的 SELECT 语句中创建临时表)
问题描述
是否可以在不使用 create table 语句并指定每个列类型的情况下从 select 语句创建临时(仅限会话)表?我知道派生表能够做到这一点,但那些是超临时的(仅限语句),我想重用.
Is it possible to create a temporary (session only) table from a select statement without using a create table statement and specifying each column type? I know derived tables are capable of this, but those are super-temporary (statement-only) and I want to re-use.
如果我不必编写创建表命令并保持列列表和类型列表匹配,这将节省时间.
It would save time if I did not have to write up a create table command and keep the column list and type list matched up.
推荐答案
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 表仅对当前会话可见,并在会话关闭时自动删除.这意味着两个不同的会话可以使用相同的临时表名称,而不会相互冲突或与现有的同名非临时表发生冲突.(在删除临时表之前,现有表是隐藏的.)要创建临时表,您必须具有 CREATE TEMPORARY TABLES 权限.
You can use the TEMPORARY keyword when creating a table. A TEMPORARY table is visible only to the current session, and is dropped automatically when the session is closed. This means that two different sessions can use the same temporary table name without conflicting with each other or with an existing non-TEMPORARY table of the same name. (The existing table is hidden until the temporary table is dropped.) To create temporary tables, you must have the CREATE TEMPORARY TABLES privilege.
这篇关于在没有单独的 CREATE TABLE 的 SELECT 语句中创建临时表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在没有单独的 CREATE TABLE 的 SELECT 语句中创建临时表
基础教程推荐
- SQL Server 实例在登录协商期间返回无效或不受支持的协议版本 2021-01-01
- 如何使用 mysql.connector 禁用查询缓存 2022-01-01
- 将 SQL Server DateTime 列迁移到 DateTimeOffset 2021-01-01
- SQL:使用来自具有相同列名的两个表中的数据... 2021-01-01
- 无法解决整理冲突 2021-01-01
- SSMS 中的权限问题:“对象 'extended_properties'、数据库 'mssqlsystem_resource'、... 错误 229)上的 SELECT 权限被拒绝" 2022-01-01
- 在 SQL 中连接多个表 2021-01-01
- 需要 MySQL 5.1 中的抽象触发器来更新审计日志 2021-01-01
- 是否可以执行按位分组功能? 2021-01-01
- SQL 效率:WHERE IN 子查询 vs. JOIN 然后 GROUP 2021-01-01
