课程表

MySQL课程

工具箱
速查手册

MySQL 临时表

当前位置:免费教程 » 数据库/运维 » MySQL

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

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

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

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

实例

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

  1. mysql> CREATE TEMPORARY TABLE SalesSummary (
  2. -> product_name VARCHAR(50) NOT NULL
  3. -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
  4. -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
  5. -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
  6. );
  7. Query OK, 0 rows affected (0.00 sec)
  8.  
  9. mysql> INSERT INTO SalesSummary
  10. -> (product_name, total_sales, avg_unit_price, total_units_sold)
  11. -> VALUES
  12. -> ('cucumber', 100.25, 90, 2);
  13.  
  14. mysql> SELECT * FROM SalesSummary;
  15. +--------------+-------------+----------------+------------------+
  16. | product_name | total_sales | avg_unit_price | total_units_sold |
  17. +--------------+-------------+----------------+------------------+
  18. | cucumber | 100.25 | 90.00 | 2 |
  19. +--------------+-------------+----------------+------------------+
  20. 1 row in set (0.00 sec)

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

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


删除MySQL 临时表

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

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

  1. mysql> CREATE TEMPORARY TABLE SalesSummary (
  2. -> product_name VARCHAR(50) NOT NULL
  3. -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
  4. -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
  5. -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
  6. );
  7. Query OK, 0 rows affected (0.00 sec)
  8.  
  9. mysql> INSERT INTO SalesSummary
  10. -> (product_name, total_sales, avg_unit_price, total_units_sold)
  11. -> VALUES
  12. -> ('cucumber', 100.25, 90, 2);
  13.  
  14. mysql> SELECT * FROM SalesSummary;
  15. +--------------+-------------+----------------+------------------+
  16. | product_name | total_sales | avg_unit_price | total_units_sold |
  17. +--------------+-------------+----------------+------------------+
  18. | cucumber | 100.25 | 90.00 | 2 |
  19. +--------------+-------------+----------------+------------------+
  20. 1 row in set (0.00 sec)
  21. mysql> DROP TABLE SalesSummary;
  22. mysql> SELECT * FROM SalesSummary;
  23. ERROR 1146: Table 'W3xue.SalesSummary' doesn't exist
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号