>>分享流行的Java框架以及开源软件,对孙卫琴的《精通Spring:Java Web开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20918 个阅读者 刷新本主题
 * 贴子主题:  MySQL 临时表 回复文章 点赞(0)  收藏  
作者:sunshine    发表时间:2019-08-10 22:45:47     消息  查看  搜索  好友  邮件  复制  引用

  

创建MySQL 临时表

     MySQL 临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。

     临时表在MySQL 3.23版本中添加,如果你的MySQL版本低于 3.23版本就无法使用MySQL的临时表。不过现在一般很少有再使用这么低版本的MySQL数据库服务了。

     MySQL临时表只在当前连接可见,如果你使用PHP脚本来创建MySQL临时表,那每当PHP脚本执行完成后,该临时表也会自动销毁。

     如果你使用了其他MySQL客户端程序连接MySQL数据库服务器来创建临时表,那么只有在关闭客户端程序时才会销毁临时表,当然你也可以手动销毁。    

范例

     以下展示了使用MySQL 临时表的简单范例,以下的SQL代码可以适用于PHP脚本的mysql_query()函数。

     mysql> CREATE TEMPORARY TABLE SalesSummary (

    -> product_name VARCHAR(50) NOT NULL

    -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00

    -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00

    -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0

);

Query OK, 0 rows affected (0.00 sec)

    向临时表插入数据:

   mysql> INSERT INTO SalesSummary

    -> (product_name, total_sales, avg_unit_price, total_units_sold)

    -> VALUES

    -> ('cucumber', 100.25, 90, 2);

   查询临时表的数据:

  mysql> SELECT * FROM SalesSummary;

+--------------+-------------+----------------+------------------+

| product_name | total_sales | avg_unit_price | total_units_sold |

+--------------+-------------+----------------+------------------+

| cucumber     |      100.25 |          90.00 |                2 |

+--------------+-------------+----------------+------------------+

1 row in set (0.00 sec)

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

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

删除MySQL 临时表

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

         以下是手动创建、插入、删除临时表的范例:

     mysql> CREATE TEMPORARY TABLE SalesSummary (

    -> product_name VARCHAR(50) NOT NULL

    -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00

    -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00

    -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0

);

Query OK, 0 rows affected (0.00 sec)

        mysql> INSERT INTO SalesSummary

    -> (product_name, total_sales, avg_unit_price, total_units_sold)

    -> VALUES

    -> ('cucumber', 100.25, 90, 2);

        mysql> SELECT * FROM SalesSummary;

+--------------+-------------+----------------+------------------+

| product_name | total_sales | avg_unit_price | total_units_sold |

+--------------+-------------+----------------+------------------+

| cucumber     |      100.25 |          90.00 |                2 |

+--------------+-------------+----------------+------------------+

1 row in set (0.00 sec)

mysql> DROP TABLE SalesSummary;

mysql>  SELECT * FROM SalesSummary;

ERROR 1146: Table 'JAVATHINKER.SalesSummary' doesn't exist

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-29 10:42:41 重新编辑]
  Java面向对象编程-->内部类
  JavaWeb开发-->JSP中使用JavaBean(Ⅱ)
  JSP与Hibernate开发-->域对象在持久化层的四种状态
  Java网络编程-->非阻塞通信
  精通Spring-->虚拟DOM和render()函数
  Vue3开发-->计算属性和数据监听
  Maven 镜像地址大全
  VSCode插件的高级用法
  SpringMVC下的JUnit4单元测试
  Spring MVC记录日志的三种方式
  Spring的方法拦截器范例
  拦截器不拦截静态资源的三种处理方法
  @SessionAttribute和@SessionAttributes的区别
  Spring MVC控制器类的方法的所支持的方法参数类型
  Redis的漏洞利用,原来大佬都是这样操作的
  微服务拆分实践
  Spring Cloud构建微服务架构的分布式配置中心
  Spring+JPA+ehcache开启二级本地缓存
  Dubbo源码解析之SPI:扩展类的加载过程
  分布式架构知识体系
  什么是CXF
  更多...
 IPIP: 已设置保密
楼主      
该用户目前不在线 nihaota 
  
威望: 0
级别: 新手上路
魅力: 1315
经验: 1315
现金: 2944
发文章数: 243
注册时间: 0001-01-01
 消息  查看  搜索  好友  邮件  复制  引用


讨债公司
发文章时间 2022-10-28 21:20:18
 IPIP: 已设置保密 1 楼     
1页 1条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。