首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《MySQL系列》之MySQL临时表和复制表

MySQL临时表

     在MySQL中,临时表是一种特殊类型的表,它允许您存储一个临时结果集,可以在单个会话中多次重用。

     当使用JOIN子句查询需要单个SELECT语句的数据是不可能或遇到瓶颈的时候,临时表非常方便。在这种情况下,我们就可以使用临时表来存储直接结果,并使用另一个查询来处理它。临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。

MySQL临时表具有以下特殊功能:

使用CREATE TEMPORARY TABLE语句创建临时表。请注意,在CREATE和TABLE关键字之间添加TEMPORARY关键字。

当会话结束或连接终止时,MySQL会自动删除临时表。当您不再使用临时表时,也可以使用DROP TABLE语句来显式删除临时表。

一个临时表只能由创建它的客户机访问。不同的客户端可以创建具有相同名称的临时表,而不会导致错误,因为只有创建临时表的客户端才能看到它。但是,在同一个会话中,两个临时表不能共享相同的名称。

临时表可以与数据库中的普通表具有相同的名称。例如,如果在示例数据库(yiibaidb)中创建一个名为employees的临时表,则现有的employees表将变得无法访问。对employees表发出的每个查询现在都是指employees临时表。当删除您临时表时,永久employees表可以再次访问。

创建MySQL临时表

要创建临时表,只需要将关键字添加到语句的中间。

例如:

当你使用 SHOW TABLES命令显示数据表列表时,你将无法看到 SalesSummary表。

如果你退出当前MySQL会话,再使用 SELECT命令来读取原先创建的临时表数据,那你会发现数据库中没有该表的存在,因为在你退出时该临时表已经被销毁了。

删除MySQL 临时表

默认情况下,当你断开与数据库的连接后,临时表就会自动被销毁。当然你也可以在当前MySQL会话使用 DROP TABLE 命令来手动删除临时表。

以下是手动删除临时表的实例:

ps:用查询直接创建临时表的方式:

这里有之前创建的表

实际操作

MySQL复制表

什么时候我们会用到复制表?例如:我现在对一张表进行操作,但是怕误删数据,所以在同一个数据库中建一个表结构一样,表数据也一样的表,以作备份。

复制表结构

方法一:

仅复制表结构,不复制表内容。

1、查看旧表结构

2、使用like复制表并查看结构

3、查看表数据

4、导入数据

方法二:

复制部分表结构,复制表内容。

1、使用select复制表并查看结构

2、查看新建表b的所有内容

ps:通过和原表的结构对比就可以看到,因为用select方法只复制字段属性,其它的主键、索引、表备注、存储引擎都没有复制。

部分字段复制方法

当然了,有时候我们可能并不需要完全复制表,只要复制部分字段和数据,那么可以按如下操作:

方法一(仅复制表部分字段结构和内容)

例如:

1、复制表

2、查看表结构

3、查看表数据

历史文章及资料

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221226A0022800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券