为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL 临时表介绍

标签:
MySQL

Summary: in this tutorial, we will discuss about MySQL temporary table and show you how to create, use and drop temporary tables.

Introduction to MySQL temporary table

In MySQL, a temporary table is a special type of table that allows you to store a temporary result set, which you can reuse several times in a single session. A temporary table is very handy when it is impossible or expensive to query data that requires a single SELECT statement with JOIN clauses. You often use temporary tables in stored procedures to store immediate result sets for the subsequent uses.

MySQL temporary tables have some additional features:

  • A temporary table is created by using CREATE TEMPORARY TABLE statement. Notice that the TEMPORARY keyword is added between CREATE and TABLE keywords.

  • MySQL drops the temporary table automatically when the session ends or connection is terminated. Of course, you can use the DROP TABLE statement to drop a temporary table explicitly when you are no longer use it.

  • A temporary table is only available and accessible by the client who creates the table.

  • Different clients can create a temporary table with the same name without causing errors because only the client who creates a temporary table can see it. However, in the same session, two temporary tables cannot have the same name.

  • A temporary table can have the same name as an existing table in a database. For example, if you create a temporary table named employees in the sample database, the existing employees table becomes inaccessible. Every query you issue against the employees table refers to the employees temporary table. When you remove the employees temporary table, the permanent employees table is available and accessible again. Though this is allowed however it is not recommended to create a temporary table whose name is same as a name of a permanent table because it may lead to a confusion. For example, in case the connection to the MySQL database server is lost and you reconnect to the server automatically, you cannot differentiate between the temporary table and the permanent table. In the worst case, you may issue a DROP TABLE statement to remove the permanent table instead of the temporary table, which is not expected.

Create MySQL temporary table

Like the CREATE TABLE statement, MySQL provides many options to create a temporary table. To create a temporary table, you just add the TEMPORARY keyword to the CREATE TABLE statement.

For example, the following statement creates a top 10 customers by revenue temporary table based on the result set of a SELECT statement:

CREATE TEMPORARY TABLE top10customers SELECT p.customerNumber,         c.customerName,         FORMAT(SUM(p.amount),2) total FROM payments p INNER JOIN customers c ON c.customerNumber = p.customerNumber GROUP BY p.customerNumber ORDER BY total DESC LIMIT 10

Now, you can query data from the top10customers temporary table as from a permanent table:

SELECT * FROM top10customers

MySQL Temporary Table - Top 10 customers by revenue

Drop MySQL temporary table

You can use the DROP TABLE statement to remove temporary tables however it is good practice to use the DROP TEMPORARY TABLE statement instead. Because the DROP TEMPORARY TABLE removes only temporary tables, not the permanent tables. In addition, the DROP TEMPORARY TABLE statement helps you avoid the mistake of removing a permanent table when you name your temporary table the same as the name of the permanent table.

For example, to remove the top10customers temporary table, you use the following statement:

DROP TEMPORARY TABLE top10customers

Notice that if you try to remove a permanent table with the DROP TEMPORARY TABLE statement, you will get an error message saying that the table you are trying drop is unknown.

Note if you develop an application that uses a connection pooling or persistent connections, it is not guaranteed that the temporary tables are removed automatically when your application is terminated. Because the database connection that the application used may be still open and is placed in a connection pool for other clients to reuse it. This means you should always remove the temporary tables that you created whenever you are done with them.

In this tutorial, you have learned about MySQL temporary table and its characteristic. We also gave you an example of how to create, use and drop a temporary table.

原文链接:http://outofmemory.cn/mysql/mysql-temporary-table

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消