MySQL - 临时表

MySQL - 临时表 首页 / MySQL入门教程 / MySQL - 临时表

在某些情况下,临时表对于保留临时数据可能非常有用,临时表应该知道的最重要的事情是,当当前客户端会话终止时,它们将被删除。

创建临时表

在MySQL 3.23版中添加了临时表。如果您使用的MySQL版本早于3.23,则不能使用临时表,但可以使用堆表。

语法:

mysql> CREATE TEMPORARY TABLE table_name (
   column_1, column_2, ..., table_constraints
);

以下程序是一个示例,向您显示临时表的用法。

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 命令时,临时表不会在列表中列出,现在,如果您要退出MySQL会话,然后发出 SELECT 命令,那么数据库中将找不到可用的数据,甚至您的临时表也将不存在。

删除临时表

语法:

链接:https://www.learnfk.comhttps://www.learnfk.com/mysql/mysql-temporary-tables.html

来源:LearnFk无涯教程网

mysql> DROP TEMPORARY TABLE table_name;

默认情况下,当数据库连接终止时,MySQL将删除所有临时表,如果需要删除它们,则可以通过发出 DROP TABLE 命令来删除它们,但是,在DROP TABLE语句中使用 TEMPORARY 关键字是一种很好的做法。

以下程序是删除临时表的示例-

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 'Learnfk.SalesSummary' doesn't exist

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

技术与商业案例解读 -〔徐飞〕

Service Mesh实践指南 -〔周晶〕

Spring Boot与Kubernetes云原生微服务实践 -〔杨波〕

NLP实战高手课 -〔王然〕

视觉笔记入门课 -〔高伟〕

Selenium自动化测试实战 -〔郭宏志〕

编程高手必学的内存知识 -〔海纳〕

AI大模型系统实战 -〔Tyler〕

PPT设计进阶 · 从基础操作到高级创意 -〔李金宝(Bobbie)〕

好记忆不如烂笔头。留下您的足迹吧 :)